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

JS and jQuery - loop through textboxes and store value

本文关键字:存储 文本 访问 jQuery 循环 JS      更新时间:2023-09-26

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

所以,我想做的是:

  1. 如果未选择单选,则抛出一条消息。
  2. 如果单选选项为"yes",但未输入文本,则引发错误。
  3. 如果单选按钮为"否",但输入了文本,请将文本设为空。
  4. 如果一切正常,请将内容添加到"所有响应"中

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

Yes a1
No
Yes a3
No
Yes 

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

但是,我得到这个:

https://i.stack.imgur.com/NXMDl.png

此外,文本不会像第 1 种和第 3 种情况那样更新。

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

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

谢谢

你有一个循环:

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 = '';