所以我的表单有这个jQuery:
frm.submit(function(event) {
validateForm();
if(validateForm()) {
$(this).submit();
} else {
event.preventDefault();
}
});
它确实有点工作,但是我得到了JS <error>
(并且它没有在控制台中说出任何其他内容),我认为原因是该函数必须再次进行验证?有点像循环依赖。
你能告诉我一个更好的方法来做我想在这里取得的确切事吗?
答案 0 :(得分:0)
function validateForm(){
if (input.val().isok && select.val().ispresent){
form.submit();
}else{
show_errors();
}
}
为什么不那样?
答案 1 :(得分:0)
这样的事可能吗?
HTML -
<input type="text" id="name" />
<input type="tel" id="phone" />
<div id="submit">Submit</div><br>
<div id="errors"></div>
JS -
var user = {}
$('#submit').click(function(){
// validating form
if(!$('#name').val()) {
$('#errors').text('invalid value in "name" field')
return false;
}
if(!$('#phone').val()) {
$('#errors').text('invalid value in "phone" field')
return false;
}
$('#errors').text('');
user.phone = $('#phone').val();
user.name = $('#name').val();
// form submission goes here
});
逻辑 -
一旦函数返回任何内容(true,false,一个字符串,你命名它),就会阻止在返回之后执行任何其他操作。
如果你不使用任何类型的返回,函数默认返回true,这意味着JS代码将继续执行下一个函数\声明。
这使您可以选择在返回false之前操作元素并处理错误,并使函数停止继续运行。