我試圖阻止/允許表單使用以下js中給出的某些條件進行提交。我能夠從我的PHP代碼中獲得所有的響應並顯示它們,但是防止/允許表單被提交的if條件似乎現在可以按照它應該的方式工作。儘管從PHP獲取響應時間有所延遲。如果條件滿足,只有當答案是「OK」,但if條件被處理之前我得到了來自PHP代碼的響應。阻止/允許表單提交
請幫忙
謝謝。
JS -
function checkall() {
var name=document.getElementById("UserName").value;
var email=document.getElementById("UserEmail").value;
var group=document.getElementById("GroupName").value;
if(name)
{
$.ajax({
type: 'post',
url: 'checkdata.php',
data: {
user_name:name,
},
success: function (response) {
$('#name_status').html(response);
}
});
}
else
{
$('#name_status').html("");
}
if(email)
{
$.ajax({
type: 'post',
url: 'checkdata.php',
data: {
user_email:email,
},
success: function (response) {
$('#email_status').html(response);
}
});
}
else
{
$('#email_status').html("");
return false;
}
if(group)
{
$.ajax({
type: 'post',
url: 'checkdata.php',
data: {
groupname:group,
},
success: function (response) {
$('#group_status').html(response);
}
});
}
else
{
$('#group_status').html("");
return false;
}
var namehtml=document.getElementById("name_status").innerHTML;
var emailhtml=document.getElementById("email_status").innerHTML;
var grouphtml=document.getElementById("group_status").innerHTML;
if((namehtml && emailhtml && grouphtml)=="OK")
{
alert("processing");
return true;
} else {
alert("Failed To Submit");
return false;
}
//return false;
}
的Html -
<form name="registration" action="" method="post" onsubmit="return checkall()" autocomplete="off">
<input type="text" name="username" required="required" id="UserName" />
<label for="#{label}">Username</label> <p id="name_status"></p>
<input type="email" name="email" required="required" id="UserEmail" />
<label for="#{label}">Email</label> <p id="email_status"></p>
<input type="password" id="#{label}" name="password" required="required"/>
<label for="#{label}">Admin Password</label>
<input type="text" name="group_name" required="required" id="GroupName" />
<label for="#{label}">Group Name</label> <p id="group_status"></p>
<input type="password" id="#{label}" name="group_password" required="required"/>
<label for="#{label}">Group Password</label>
<button type="submit" id="myBtn" name="submit"><span>Next</span></button>
</form>
可能有幾種方法來處理這個問題,但如果您只想根據特定條件提交表單,那麼您可以將提交按鈕更改爲常規按鈕(使用type =「button」),將其onclick事件連接到您選擇的任何JavaScript方法,然後通過該方法決定是否提交表單。 –
@RobZuber我做了你說的,但問題是決定提交或不提交的if語句是在php響應之前處理的。 PHP響應需要時間,因爲它必須通過sql查詢和驗證。 –