[英]Prevent form submission in jQuery by ID
我正在使用jQuery Ajax函數來檢查jquery更改函數在數據庫中是否存在用戶電子郵件。 在Ajax響應中,用戶電子郵件存在或不存在兩種可能性。 如果存在,則顯示錯誤消息。 現在,如果Ajax響應為假,我想阻止表單提交
jQuery("#userEmail").change(function(){
//my code goes here
if(result == 'False'){
//prevent form here
}
else {
// else condition goes here
}
});
您可以將全局變量
emailValidated = false
然后
jQuery("#userEmail").change(function(){
//my code goes here
if(result == 'False'){
emailValidated = false;
}
else {
// else condition goes here
emailValidated = true;
}
});
之后,在表單上提交,檢查emailValidated
變量的值。
$(form).submit(function(){
if(emailValidated) {
this.submit();
}
else {
return false;
}
})
使用e.preventDefault()阻止提交表單。
jQuery("#userEmail").change(function(e){
if(result == 'False'){
e.preventDefault();
}
else {
}
});
您需要使用Submit事件處理程序:
jQuery("#userEmail").closest("form").submit(function(event){
var $email = jQuery("#userEmail", this);
//the email field is not `this`, but `$email` now.
//your code goes here
if(result == 'False'){
event.preventDefault();
}
else {
// else condition goes here
}
});
如果需要,您仍然可以將其他行為附加到更改事件。 重要的是對submit事件執行event.preventDefault()
。
做這樣的事情:
var結果;
$.ajax({
url: url,
// Put all the other configuration here
success: function(data){
if(data == something) // replace something with the server response
result = true; // Means that the user cannot submit the form
},
});
$('#formID').submit(function(){
if(result){
alert('Email already exists.');
return false;
}
});
檢查以下鏈接以獲取參考。 http://www.sitepoint.com/jquery-ajax-validation-remote-rule/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.