使用 Jquery 验证器,我可以使用以下 if 语句来确保我的表单在继续使用 Ajax 之前有效:
var frm = $(this).closest('form');
if($(frm).valid()){
AJAX JQUERY POST INFORMATION GOES HERE
};
现在我正在使用来自Javascript-Coder.com的 Javascript 表单验证器。问题是没有任何文档描述了与 valid() 类似的功能或在继续之前检查表单是否有效的方法。我在 javascript 方面受到限制,并且可以真正利用社区的帮助来构建类似的 if 语句。
我运行验证很好,但即使验证失败,我的 ajax 脚本也会继续运行直到完成。在非 ajax 应用程序中,验证效果很好,并且在发布到 php 之前会自动停止。但是对于 ajax,当验证无法让我的用户更正他们的操作时,我似乎无法停止脚本。
我试着从这里收集一些东西,但它并没有让我足够接近做一些有用的事情。我尝试了那里提供的一些变化,但我错过了一些东西。
我的验证效果很好,并且是:
<script type="text/javascript">
var frmvalidator = new Validator("send_message_frm");
frmvalidator.EnableOnPageErrorDisplay();
frmvalidator.EnableMsgsTogether();
frmvalidator.addValidation("desc","alnum","Only numbers and letters are allowed");
frmvalidator.addValidation("desc","req","Please enter a description");
</script>
我的 ajax 脚本也可以工作,但如果验证失败,我需要它不运行。这是:
$(document).ready(function(){
//Validate form....what can I put here to test if validation is completed properly????
//onclick handler send message btn
$("#send-message").click(function(){
$(this).closest('form').submit(function(){
return false;
});
var frm = $(this).closest('form');
$("#ajax-loading").show();
var data = $(frm).serialize();
$(frm).find('textarea,select,input').attr('disabled', 'disabled');
$.post(
"company_add.php",
data,
function(data){
$("#ajax-loading").hide();
$(frm).find('textarea,select,input').removeAttr('disabled');
$("#send_message_frm").prepend(data);
}
);
}
);
});
</script>