我有这个代码,如果为空则验证输入的值,并使用twitter bootstrap popover显示消息错误:
$(document).on("ready", login_events());
function login_events(){
$("#userId, #password").on("change", validateEmpty);
$("#loginButton").on("click", validateAll);
}
function validateEmpty(){
input = $(this);
input.popover({animation: true, placement: 'right', trigger: 'manual', title: 'Field is Empty', content: input.attr("data-empty-message")});
isValid = true;
if(input.val() === ""){
input.popover('show');
isValid = false;
}
else{
input.popover('hide');
}
return isValid;
}
这在改变事件完成时非常有效,但我想做另一个函数,它将在表单中的每个输入之间进行迭代,验证它是否为空(validateEmpty())和preventDefault(如果有的话)为空。
正如你所看到的,我为#loginButton设置了click事件设置来运行validateAll函数,我有类似的东西,但无法找到正确的方法:
function validateAll(event){
$("#loginForm input").each(validateEmpty);
}
答案 0 :(得分:1)
试试这个闭包:
function validateAll(event){
var isValid = true;
$("#loginForm input").each(function (){
input = $(this);
input.popover({animation: true, placement: 'right', trigger: 'manual', title: 'Field is Empty', content: input.attr("data-empty-message")});
isValid = true;
if(input.val() === ""){
input.popover('show');
if (isValid)
isValid = false;
}
});
if (!isValid) {
alert('form is not valid!');
}
}
答案 1 :(得分:0)
谢谢@VMAtm!我替换了each()中的函数来运行我已经创建的validateEmpty函数。它现在很棒!
function validateAll(event){
isValid = true;
$("#loginForm input").each(validateEmpty);
if(!isValid){
event.preventDefault();
}
}