2012-05-18 73 views
0

我有兩件我希望一起工作的javascript。我有一個通過ajax提交的表單和一個表單驗證腳本,如果驗證失敗,我希望一起工作以防止提交ajax表單。通過ajax函數調用驗證

這裏是AJAX表單提交腳本:

<script type="text/javascript"> 
$(document).ready(function(){$(".sendName").click(function(){ 
var jsuser=$("#jsuser").val(); 
var jemail=$("#jemail").val(); 
var jusid=$("#jusid").val(); 
$.post("recomend.php",{jsuser:jsuser,jusid:jusid,jemail:jemail},function(data){$("#loadName") 
.html(data) 
.effect('bounce', { times: 5, distance: 30 }, 300); 
    }); 
}); 
}); 
$('#start').click(function() { 
    $('#effect').toggle('fast', function() { 
    }); 
}); 
</script> 

此代碼的工作完美,並提交表單。

我也有驗證代碼部分工作。如果輸入的信息不正確,錯誤信息將顯示在該字段旁邊,但表單仍可提交。

在一個正常的形式驗證代碼被稱爲是這樣的:

<form method="post" action="formprocess.php" name="form1" id="form1" onsubmit="return validate(this)"> 

所以,我需要知道如何做等價的:

onsubmit="return validate(this)" 

在AJAX提交代碼,如果有錯誤,請不要提交表格。

+0

出於好奇,你爲什麼不獎勵upvotes被人幫助你解決問題提供有用的答案? – Phrogz

+0

我通常這樣做。我也總是接受最能幫助我解決問題的答案。當我試圖更早地解決這個問題時,我有點急,所以只是標記了接受的答案並離開了。但是,我總是檢查我的問題以尋找新的帖子和評論,並接受答案並標出甚至稍有幫助的答案。在這個問題上的兩個答案都幫助我弄清了一些事情,所以他們都被投票了。 –

回答

1

你爲什麼不做以下事情?

<script type="text/javascript"> 

$(document).ready(function(){$(".sendName").click(function(){ 

var jsuser=$("#jsuser").val(); 
var jemail=$("#jemail").val(); 
var jusid=$("#jusid").val(); 
if(validate(jsuser, jemail, jusid)){ 
$.post("recomend.php",{jsuser:jsuser,jusid:jusid,jemail:jemail},function(data){$("#loadName") 
.html(data) 
.effect('bounce', { times: 5, distance: 30 }, 300); 
    }); 
}); 
}); 
$('#start').click(function() { 
    $('#effect').toggle('fast', function() { 
    }); 
}); 
} 
</script> 

哪裏validate做您的驗證

+0

我最終做了與此非常相似的事情。 –

1
$(".sendName").click(function(){ 
    if (!validate(this.form)) return; 
    // rest of your function, including AJAX call 
}); 

.form屬性可用於所有形式的元素(HTMLSelectElement,HTMLOptionElement,HTMLInputElement,HTMLTextAreaElement,HTMLButtonElement,HTMLLabelElement,HTMLFieldSetElement,HTMLLegendElement,HTMLObjectElement,和HTMLIsIndexElement)。

+0

如果驗證失敗,我還會如何添加一些代碼? –

+0

通過[寫作JavaScript](http://www.echoecho.com/javascript6.htm),例如'if(...){...} else {...}' – Phrogz

+0

我很熟悉if語句。只是不能100%確定你的代碼中的「返回」。根據你的發佈代碼,我會做if(!validate(this.form)){return;} else {}嗎? –