在AJAX请求成功后,我一直在尝试启用Submit Button。 验证在PHP文件中,其中包含以下代码
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" Username Not Available.";
}else{
echo" Username Available.";
}
}
这是AJAX
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 (){}
});
}
我已经使用了这是成功它做的是禁用提交按钮,即使数据匹配请求,按钮保持禁用状态
$("#submit").attr("disabled", true);
并且错误地跟着
$("#submit").attr("disabled", false);
我已经完成了这些问题并尝试了解决方案,但这些解决方案对我来说并不奏效。
jQuery:运行'success:'后重新启用禁用的输入按钮
在AJAX请求时禁用按钮
这是HTML
Check Username:
Check Username:
提前致谢!
在成功事件上,您需要将disabled属性值设置为false。 这将重新启用该按钮
$("#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代码可以使用的标志值。
if($user_count>0) {
echo"no";
}else{
echo"available";
}
在您的成功处理程序中检查此值并隐藏/显示按钮/消息
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中显示的标志和消息。 你也可以尝试一下。
现在看起来像这样,是不是正确的? success:function(data){$("#user-availability-status")。html(data); $("#loaderIcon")隐藏()。 $("#submit")。prop("disabled",false); },error:function(){}});
是。如果您在页面中没有任何其他脚本错误并且您正在从ajax调用中获取成功事件,它应该可以工作。检查您的浏览器控制台是否存在脚本错误,并在成功处理程序中放置console.log('success occured')以验证它
我已经尝试了上面的代码片段,但如果输入的用户名与DB中的用户名匹配,则仍然不会禁用该按钮,反之亦然:(
我已经把console.log('成功发生')并且结果没有任何错误,它工作正常但按钮问题仍然存在:(
您的问题是关于在成功处理程序中重新启用提交按钮。我的答案与验证脚本对db的作用无关。
这是一个查询问题吗?
非常感谢!这对我有用。我对这些事情不熟悉,无论如何我都会犯下愚蠢的错误!爱!
别客气。很高兴我能提供帮助:)不要担心每个人都会从这些愚蠢的错误中吸取教训。:)
另一个小问题:我使用它来验证用户名,无论如何我可以搞砸这些数据:'username ='+ $("#username")。val(),检查多个数据?或者我们如何使用数据来检查多个数据?你很清楚我不知道这些事情的确切条款
成功使用:
$("#submit").removeAttr("disabled");
代替
$("#submit").attr("disabled", false);
要再次启用该按钮,您需要完全删除disabled属性。