<div class="form-group">
<label>Email Visible (Fill other means of contact to change)</label>
<select id="emailVisible" required name="emailVisible" class="form-control" disabled="disabled">
<option value="yes" selected = "selected">Yes</option>
<option value="no">No</option>
</select>
</div>
setInterval(function(){
console.log("GOOO");
if ($("#twitterInput").val() == "" && $("#facebookInput").val() == "" && $("#steamInput").val() == "") {
console.log("1");
$("#emailVisible").attr("disabled","disabled");
} else {
console.log("2");
$("#emailVisible").attr("disabled",false);
console.log($('#emailVisible').attr('disabled'));
}
}, 1000);
“的console.log($( '#emailVisible')ATTR( '禁用'));”打印未定义 在控制台中。
每秒打印“2”。
我不知道我的语法有什么不正确。
答案 0 :(得分:2)
尝试使用prop()
代替attr()
。并使用布尔类型更改值而不是使用string
。并且不要忘记添加3个输入
setInterval(function() {
if ($("#twitterInput").val() == "" && $("#facebookInput").val() == "" && $("#steamInput").val() == "") {
console.log("1");
$("#emailVisible").prop("disabled", true);
} else {
console.log("2");
$("#emailVisible").prop("disabled", false);
console.log($('#emailVisible').prop('disabled'));
}
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group">
<input id="twitterInput">
<input id="facebookInput">
<input id="steamInput">
<label>Email Visible (Fill other means of contact to change)</label>
<select id="emailVisible" required name="emailVisible" class="form-control" disabled="disabled">
<option value="yes" selected = "selected">Yes</option>
<option value="no">No</option>
</select>
</div>
答案 1 :(得分:0)
执行jquery时,您可以发现disabled
中<select>
没有id="emailVisible
属性
$("#emailVisible").attr("disabled",false);
这是因为它删除了此属性以启用选择框。这就是为什么当您访问$('#emailVisible').attr('disabled')
时它是undefined
,因为没有这样的属性。您可以在此选择框上使用inspect element
来验证自己。
答案 2 :(得分:0)
setInterval(function(){
console.log("GOOO");
if ($("#twitterInput").val() == "" && $("#facebookInput").val() == "" && $("#steamInput").val() == "") {
console.log("1");
$("#emailVisible").prop("disabled","disabled");
} else {
console.log("2");
$("#emailVisible").prop("disabled",false);
console.log($('#emailVisible').prop('disabled'));
}
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group">
<label>Email Visible (Fill other means of contact to change)</label>
<select id="emailVisible" required name="emailVisible" class="form-control" disabled="disabled">
<option value="yes" selected = "selected">Yes</option>
<option value="no">No</option>
</select>
</div>
只需将attr更改为prop,因为disable是属性。