Re-Enable Submit button after success in AJAX
在AJAX请求成功后,我一直在尝试启用Submit Button。 验证在PHP文件中,其中包含以下代码
1 2 3 4 5 6 7 8 9 10 11 12 | if(!empty($_POST["username"])) { $fetch ="SELECT * FROM student WHERE std_username='" . $_POST["username"] ."'"; $result = mysqli_query($con, $fetch); $user_count = mysqli_num_rows($result); if($user_count>0) { echo"<span class='status-not-available'> Username Not Available.</span>"; }else{ echo"<span class='status-available'> Username Available.</span>"; } } |
这是AJAX
1 2 3 4 5 6 7 8 9 10 11 12 13 | function checkAvailability() { $("#loaderIcon").show(); jQuery.ajax({ url:"check_availability.php", data:'username='+$("#username").val(), type:"POST", success:function(data){ $("#user-availability-status").html(data); $("#loaderIcon").hide(); }, error:function (){} }); } |
我已经使用了这是成功它做的是禁用提交按钮,即使数据匹配请求,按钮保持禁用状态
1 | $("#submit").attr("disabled", true); |
并且错误地跟着
1 | $("#submit").attr("disabled", false); |
我已经完成了这些问题并尝试了解决方案,但这些解决方案对我来说并不奏效。
jQuery:运行'success:'后重新启用禁用的输入按钮
在AJAX请求时禁用按钮
这是HTML
1 2 3 4 5 6 7 | <form method="POST"> <label>Check Username:</label> <input name="username" type="text" id="username" class="demoInputBox" onBlur="checkAvailability()"><span id="user-availability-status"></span> <label>Check Username:</label> <input name="email" type="text" id="email" class="demoInputBox" onBlur="checkAvailabilitye()"><span id="email-availability-status"></span> <input type="submit" id="submit"> </form> |
提前致谢!
在成功事件上,您需要将
1 2 3 4 5 6 7 8 9 10 11 12 13 | $("#submit" ).prop("disabled", true ); //disable when ajax call starts jQuery.ajax({ url:"check_availability.php", data:'username='+$("#username").val(), type:"POST", success:function(data){ $("#submit" ).prop("disabled", false ); //enable it back $("#user-availability-status").html(data); $("#loaderIcon").hide(); }, error:function (){} }); |
编辑:根据评论,
看起来你正在尝试启用/禁用基于你正在做的检查db表的检查按钮。 目前你的php脚本正在返回一个人类可读的字符串。 也许你可以改变你的php脚本来返回你的javascript代码可以使用的标志值。
1 2 3 4 5 | if($user_count>0) { echo"no"; }else{ echo"available"; } |
在您的成功处理程序中检查此值并隐藏/显示按钮/消息
1 2 3 4 5 6 7 8 9 10 11 12 | success:function(data){ $("#loaderIcon").hide(); var msg="Not available"; if(data=="available") { $("#submit" ).prop("disabled", false ); //enable it back msg="Username available"; } $("#user-availability-status").html(msg); }, |
我不是一个PHP人。 可能有一种方法可以从PHP页面返回JSON结构,该页面可以返回要在消息div中显示的标志和消息。 你也可以尝试一下。
成功使用:
1 | $("#submit").removeAttr("disabled"); |
代替
1 | $("#submit").attr("disabled", false); |
要再次启用该按钮,您需要完全删除