0

这是检查表单是否完整的函数。

所以,我想做的是:

  1. 如果未选择收音机,则抛出一条消息。
  2. 如果 radio 为“yes”,但没有输入文本,则抛出错误。
  3. 如果 radio 为“no”但输入了文本,则将文本设为空。
  4. 如果一切正常,将内容添加到 `allResponses

表单显示5次,输入如下:

Yes a1

No

Yes a3

No

Yes 

现在,这个输入应该显示一个错误,因为在第 5 种情况下,选择了“是”,但在文本框中没有输入任何内容。

但是,我明白了:

http://i.imgur.com/ya2CUp0.png

此外,文本没有像第一种和第三种情况那样更新。

我对 JS 不太了解,所以请尽可能向我提供解释性的回复。

编辑:完整代码: http: //pastebin.com/scNSNM2H

谢谢

4

1 回答 1

2

你有这个循环:

var exaggerationPart = document.getElementById('exaggeration').value

然后你检查以确保它对每个项目都有一个值。但是你每次都会得到相同的值。

您正在创建具有相同 id 的多个输入,“夸张”。这是无效的 HTML。Id 必须是唯一的。要更正此问题,您可以像使用其他元素(例如,input[name='response"+thisJokeIndex+"'])一样增加 id。

var exaggerationPart = document.getElementById('exaggeration' + thisJokeIndex).value
tipTD2.append("<input type='text' name='exaggeration' id='exaggeration" + tipIndex + "' size='70'>")

工作演示: jsfiddle.net/svvge/2

编辑:要清除文本框的值,您必须更改value文本框元素的属性。现在你只是在改变一个变量的值。

var exaggerationInput = document.getElementById('exaggeration' + thisJokeIndex).value;
var exaggerationPart = exaggerationInput.value;
exaggerationInput.value = '';
于 2013-01-26T00:06:05.293 回答