所以我有一个表格:
<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提交发送到不同的URL。在ajax推送成功时 - 提交表单,然后验证表单。
在ajax请求之前,我需要单击#submitbutton时表单验证。有什么想法吗?
答案 0 :(得分:1)
该代码应该可以正常工作。如果你想将它添加到元素上的onclick=
属性(我不会,但如果你坚持),你可以使用这种语法来引用表单:
<input type="submit" onclick="return validateFormOnSubmit(this.parentNode)" />
您必须从e.preventDefault()
函数执行return false
和validateFormOnSubmit()
(可能只有一个?)。
答案 1 :(得分:0)
看看preventDefault。此外,您可以在上面的anon函数中调用validateFormOnSubmit,如果验证没有通过,则返回false。
答案 2 :(得分:0)
你应该在你的表单标签属性周围添加一些“”,并给它一个id!
只需将您的验证功能作为按钮单击处理程序中的第一行调用:)
$("#submitbutton").click(function(e) {
if( validateFormOnSubmit($('#myform'))){
//do all the posting stuff
}
else{
e.preventDefault();
return false;
}