我有一个关于使用 jquery 的小问题。 我有以下代码:
<html>
<head>
<script src="jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("form").submit(function(){
if(!$(':text').val()){
$("span").text("sdfgsd").show();
};return false;
})
});
</script>
</head>
<body>
<form action="" id="ff" >
<span></span>
<input type="text" name="test" /> <br />
<input type="text" name="test3" /> <br />
<input type="checkbox" name="test2" /> <br />
<input type="submit" value="push it" />
</form>
</body>
问题是选择器仅针对第一个文本框激活。如果您在第一个文本框中输入值,则不会激活触发器。 :text 或 :input 都无法正常工作。
有人有什么想法吗?
提前致谢, 丹尼斯
最佳答案
匹配多个元素的 jQuery 选择器上的 val()
函数返回第一个匹配元素的值。您需要循环遍历所有元素并检查每个元素的值。
$(document).ready(function(){
$("form").submit(function(){
var inputsHaveValues = true;
$(':text').each( function() {
if (!$(this).val()) {
inputsHaveValues = false;
break;
}
});
if (!inputsHaveValues) {
$("span").text("sdfgsd").show();
return false;
}
})
});
关于jQuery 选择器仅选择第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5370887/