JS和jQuery - 循环文本框和存储值

时间:2013-01-25 23:15:07

标签: javascript jquery

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

所以,我正在尝试做什么:

  1. 如果未选择广播,请发送消息。
  2. 如果收音机为“是”,但未输入文字,则抛出错误。
  3. 如果收音机为“否”但输入了文字,请将文字设为空。
  4. 如果一切顺利,请将内容添加到`allResponses
  5. 表格显示5次,输入如下:

    Yes a1
    
    No
    
    Yes a3
    
    No
    
    Yes 
    

    现在,此输入应显示错误,因为在第5种情况下,选择“是”但未在文本框中输入任何内容。

    然而,我明白了:

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

    此外,文本没有像第1和第3例那样更新。

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

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

    由于

1 个答案:

答案 0 :(得分: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 = '';
相关问题