$(document).ready(function() {
$("#rem_but").click(function(){
var mail_name = $("#mail_rem").val();
var dataString = 'mail_name='+ mail_name;
if (mail_name.val() == "") { $("#rem_but").attr("disabled",true); }
else { $("#rem_but").removeAttr("disabled"); };
}); });
因此,当没有输入时,按钮会正确返回false - 当字段中有输入时 - 仍然按钮返回false,因此removeAttr()不起作用 - 为什么?问候。
答案 0 :(得分:5)
尝试(mail_name.val() == "")
更改为(mail_name == "")
答案 1 :(得分:3)
您使用的是jQuery 1.6.x吗?
如果是,那么您应该尝试使用.prop()
功能。见下文:
Disable/enable an input with jQuery?
此外,在您的if语句中,无需继续选择$("#rem_but")
。根据您的代码,我建议改为$(this)
-
$(this).prop('disabled', true);
这应该有效 -
$(document).ready(function() {
$("#rem_but").click(function(e) {
e.preventDefault();
var mail_name = $.trim($("#mail_rem").val());
var dataString = 'mail_name='+ mail_name;
if (mail_name === "") {
$(this).prop("disabled", true); }
else {
$(this).prop("disabled", false); }
});
});
这是工作的jsFiddle代码 -
更新代码 -
答案 2 :(得分:0)
也许你需要将disabled属性设置为'false'?
if (mail_name.val() == "") { $("#rem_but").attr("disabled",true); }
else { $("#rem_but").attr("disabled",false); };
}
或者将其设置为空字符串
if (mail_name.val() == "") { $("#rem_but").attr("disabled",true); }
else { $("#rem_but").attr("disabled",""); };
}