在输入中输入内容并单击按钮后,“.val()”返回一个空值,任何想法为什么?
<div class="mainClass"> <div class="class1" > <div class="class2"> <h3>Settings 1</h3> <label> <span>Text 1:</span> <input type="text" name="text"> </label> <label> <span>Text 2:</span> <input type="text" name="text2"> </label> </div> </div> <div class="class3" > <div class="class4"> <h3>Settings 2</h3> <label> <span>Text 1:</span> <input type="text" name="text"> </label> <label> <span>Text 2:</span> <input type="text" name="text2"> </label> </div> </div> </div> <button id="Go" class="go" >GO </button>
JAVASCRIPT代码:
$('#Go').on('click',function() { alert($('.class1 input').val()); //return an empty value $('.class1 input').val("test"); alert($('.class1 input').val()); //return test });
编辑:
即使这不起作用,这里我只有一个输入,所以我不能输入错误的输入:
<div class="mainClass"> <div class="class1" > <div class="class2"> <h3>Settings 1</h3> <label> <span>Text 1:</span> <input type="text" name="text"> </label> </div> </div> </div> <button id="Go" class="go" >GO </button>
编辑2:我发现了问题的开始……
当我这样做时:
$('.class1 input').each(function () { alert($(this).attr('name') + " value:" +$(this).val() ); });
我得到两个这样的“警报”:
text value: text value:myinputText
所以两个在我的HTML中创建了一个,第一个是空的,第二个很好用!
仔细查看我的页面,我发现所有元素都是重复的(< select,field,input ...) 不知道怎么可能?我打电话两次我的html文件?
我的所有代码都在弹出窗口中(我不知道它是否可以提供帮助)
(我是Javascript和jQuery的新手)
谢谢
解决方法
匹配’.class1输入’的元素不止一个.你可能没有填写第一组.
Get the current value of the first element in the set of matched
elements.
而val(‘text’)填充所有匹配的元素:
Set the value of each element in the set of matched elements
这就是为什么你在第二次警报中看到的东西.
你最好使用更具选择性的选择器.通常我们使用id或名称,如果使用表单将值发送到服务器.