我有一个像这样的表单属性:
onsubmit="return valMyForm(this);"
这样的jQuery函数:
function valMyForm(f) {
$(f,"input").each(function() {
if($(this).length < 1) {
alert("All Fields Required.");
return false;
}
else
return false;
});
}
即使我删除了所有代码并只放了return false;
答案 0 :(得分:3)
return false
函数中的each
正在退出每个循环。它没有返回valMyForm
你应该使用类似有效变量的东西并返回:
function valMyForm(f) {
var valid = true;
$("input", f).each(function() {
if($(this).val().length < 1) {
alert("All Fields Required.");
valid = false;
}
});
return valid;
}
以下是您的工作示例:http://jsfiddle.net/adpMT/
答案 1 :(得分:1)
当您返回时,您位于.each
函数内,因此您实际上并未从valMyForm
方法返回任何内容。
我建议你避免使用javascript混合标记并不引人注意地执行此操作:
<form action="/foo" id="myform">
... some input fields
</form>
然后:
$(function() {
$('#myform').submit(function() {
// see if the form contains some empty inputs
return $(this).find(':input[value=""]').length > 0;
});
});