【发布时间】:2017-09-06 15:50:45
【问题描述】:
我有一个表单可以通过 mysql php 将数据提交到数据库。我正在使用验证来检查字段是否具有值。现在我想如果提交按钮验证成功,隐藏提交按钮并显示加载图像,直到用户没有进入提交成功页面。
验证码工作正常。但问题在于隐藏提交并显示加载图像。
验证码:
$('.msf-form form').on('submit', function(e){
$(".loading").show();
$(".sbmt").hide();
var return_val = true;
console.log('test');
$(this).find('.is_mobile:visible').each(function() {
if( $(this).val() == "" ) {
return_val = false;
$(this).focus().css('border','1px solid #F44336');
$(".error-messages-mobile").text("Your valid Mobile Number is required ").fadeIn();
}
else{
$(this).css('border','0px solid #F44336');
$(".error-messages-mobile").empty().fadeOut();
}
});
$(this).find('.is_otp:visible').each(function() {
if( $(this).val() == "" ) {
return_val = false;
$(this).focus().css('border','1px solid #F44336');
$(".error-messages-otp").text("OTP is required ").fadeIn();
}
console.log(return_val);
if(return_val == true){
return_val = false;
var data = {
countryCode: $('#hiddenCode').val(),
mobileNumber: $('#hiddenNumber').val(),
oneTimePassword: $('#oneTimePassword').val()
};
$.ajax({
url: 'test.com',
type: 'POST',
data: data,
success: function (response) {console.log(response);
if (response == 'NUMBER VERIFIED SUCCESSFULLY') {
$(".error-messages-votp").empty().fadeOut();
$('.msf-form form').unbind('submit');
$('.msf-form form').submit();
return true;
}
else
{
return_val = false;
$(this).focus().css('border','1px solid #F44336');
$(".error-messages-otp").text("Enter valid OTP ").fadeIn();
}
},
error: function (jqXHR, textStatus, ex) { return_val = false;
console.log(textStatus + "," + ex + "," + jqXHR.responseText);
}
});
}
});
if(!return_val){
$(".loading").hide();
$(".sbmt").show();
return return_val;
}
});
加载 div 的样式:
代码:
<style>
.loading{
display:none;
color:#FF0000;
}
</style>
Html 和 PHP 表单代码:
我有两个输入手机号码和 OTP。我想如果其中两个有值,然后在单击时隐藏提交按钮并显示加载图像。
<input type="text" name="number" placeholder="Enter Mobile number" id="number" class="is_mobile" ><br />
<input type="hidden" name="country_code" id="country_code" class="is_vcountrycode" value="91" ><br>
<span class="error-messages-mobile" id="error"></span><br>
<div id="verifyOtpForm" >
<input type="text" name="oneTimePassword" placeholder="Enter OTP" id="oneTimePassword" class="is_otp"><br><br>
<span class="error-messages-otp" id="error"></span><br>
<input type="hidden" name="hiddenCode" id="hiddenCode">
<input type="hidden" name="hiddenNumber" id="hiddenNumber"><br>
</div>
</div>
<button type="submit" class="btn sbmt">Submit</button>
<div class="loading" style="font-size:22px;"><img src="images/loading1.gif"></div>
【问题讨论】:
-
您可以在提交到该图像时更改按钮,因此可能在 jQuery 中使用 .hide ,然后在图像上使用 .show 。 IE。您需要创建与下方提交按钮相同的 div,但使用 display:none
-
@LewisSmith 我已经这样做了,您可以在我的问题中查看。但不工作
-
抱歉,误读了,好吧,我之前也遇到过这个问题,尝试使用您希望它在成功时执行的所有操作创建一个新功能。然后触发成功。不需要,但这应该可以解决问题
-
另外你应该使用 === 而不是 == 可能会有所帮助
-
@LewisSmith 我没有正确理解您所说的内容,请您用代码解释一下。
标签: javascript php jquery html forms