在输入内容中输入内容并点击按钮后,“.val()”返回一个空值,为什么?jQuery.val()在<input>标记上不起作用
HTML代码:
<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新)
感谢
''不是标签.. –
@dystroy为什么不应该这样呢?我很确定这是完全有效的,并接受这样做 – Ian
@dystroy这里有一个参考:http://stackoverflow.com/questions/774054/should-i-put-input-tag-inside-label-tag – Ian