<script type="text/javascript">
$(document).ready(function(){
$('#addprojectform').live('submit', function (e) {
e.preventDefault();
$(".error").remove();
var startdate = $("#startdate").val();
var client = $('#client').val();
var source_lang= $('#source_lang option:selected').length;
var targ_lang = $('#targ_lang option:selected').length;
var qty = $('#qty').val();
var hasError = false;
if(startdate == '') {
$("#startdate").after('<span class="error" style="color: red;">This field is required.</span>');
hasError = true;
}
if(client == '') {
$("#client").after('<span class="error" style="color: red;">This field is required. </span>');
hasError = true;
}
if(!(source_lang)) {
$("#source_lang").after('<span class="error" style="color: red;">This field is required.</span>');
hasError = true;
}
if(!(targ_lang)) {
$("#targ_lang").after('<span class="error" style="color: red;">This field is required.</span>');
hasError = true;
}
if(qty == '') {
$("#qty").after('<span class="error" style="color: red;">This field is required.</span>');
hasError = true;
}
} // if translation
if(hasError == false)
return true;
});
});
</script>
我有这个代码。我想在提交之前验证表单。我无法控制表单何时没有错误。如果没有找到错误,我想提交表单。我添加了这段代码:
if(hasError == false)
return true;
但不提交表格..请有人帮忙吗?
答案 0 :(得分:1)
除去
e.preventDefault();
并更改
if(hasError == false)
return true;
});
到
return !hasError;
作为附注,live()
在新版jQuery版本上不推荐使用on()
答案 1 :(得分:1)
我做了什么,虽然它可能不是很棒但是:
$('#form').submit(function(e)
{
if(!$(this).hasClass('valid'))
{
e.preventDefault();
var isValid = false;
// do validation to set isValid true or false;
if(isValid)
{
$(this).addClass('valid');
$(this).submit();
// or possibly $(this).addClass('valid').submit();
return;
}
}
});
这是如何工作的,第一次提交时,它会检查表单是否有一个名为valid
的类。如果没有,它将停止表单验证并进行验证。
如果它有效,它会将类添加到表单并重新提交。由于表单现在具有valid
类,它将绕过验证并正常提交。