我尝试在代码中执行其他功能之前验证表单中的少量文本框,所以我得到了:
var validForm; // **If i set it there to true it will always be true**
$('#Form :input').each(function () {
var id = this.id;
var value = this.value;
var isMatch = id.substring(0, 4) == "txt_";
if (isMatch == true) {
if (($.trim(value) == 0 ) {
alert("invalid " + id);
valid = false;
} // **if I include a else here it will not be valid as it is foreach loop**
}
});
if (validForm == true) {
$.ajax({
type: "POST",
url: "Form.aspx/Print",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
if (msg.d == 'Success') {
}
}
});
}
如果我在foreach循环中执行else语句并将validForm
变量设置为true,则它将无效,因为最后一个文本框是有效的并且rest无效,那么它会将我的变量设置为true(请参阅代码注释)。
另一方面,如果我在开头指定validForm
为真,那么它将永远为真(见代码注释)。
有关如何克服这个问题的任何想法?
答案 0 :(得分:1)
在第10行,您使用了错误的变量:
valid = false;
应该是这样的:
validForm = false;