如何解决使javascript验证能尽快在点击时发生?
| 所以我有这样的形式: <form action=\"URL\" name=myform method=post onsubmit=\"return validateFormOnSubmit(this)\" autocomplete=off>
提交表单后,它将检查验证。
不过,我之前有这样的代码:
<script type=\"text/javascript\">
$(function() {
$(\"#submitbutton\").click(function() {
var fname = $(\"input#first_name\").val();
var lname = $(\"input#last_name\").val();
var email = $(\"input#email\").val();
var leadsource = $(\"input#leadsource\").val();
var country = $(\"input#country\").val();
var phone = $(\"input#phone\").val();
var oid = $(\"input#oid\").val();
var retURL = $(\"input#retURL\").val();
var crazy
= $(\"input#00N40000001mCkP\").val();
var dataString = \'&email=\' + email + \'&phone=\' + phone + \'&oid=\' + oid + \'&retURL=\' + retURL + \'&leadsource=\' + leadsource + \'&country=\' + country; //alert (dataString);return false; $.ajax({
type: \"POST\",url: \"MYURL.PHP?first_name=\"
+ fname + \"&last_name=\" + lname,data: dataString,success: function(response) { $(myform).submit(); }
});
return false; });
}); </script>
本质上是发生了什么,在完成真实表单之前,表单数据最初是通过AJAX提交发送到其他网址的。成功执行ajax推送-提交表单,然后验证表单。
我需要在单击#submitbutton时正确进行表单验证-在ajax请求之前。有任何想法吗?
解决方法
该代码应该可以正常工作。如果要将其添加到元素的
onclick=
属性中(我不会,但是如果您坚持要使用),则可以使用以下语法来引用以下形式:
<input type=\"submit\" onclick=\"return validateFormOnSubmit(this.parentNode)\" />
并且您必须从validateFormOnSubmit()
函数中执行e.preventDefault()
和return false
(也许只是一个?)。
, 看一下preventDefault。另外,您可以在上面的anon函数中调用validateFormOnSubmit,如果验证未通过,则返回false。
, 您应该在表单标签属性周围加上\“ \”,并为其指定ID!
只需将您的validate函数作为按钮单击处理程序的第一行即可:)
$(\"#submitbutton\").click(function(e) {
if( validateFormOnSubmit($(\'#myform\'))){
//do all the posting stuff
}
else{
e.preventDefault();
return false;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。