JS:
$(document).ready(function() {
var block = false;
if $('#password').attr('disabled'); {
block = false;
}else{
block = true;
};
if block {
$('.form_input input').attr('disabled','disabled');
}else{
$('.form_input input').removeAttribute('disabled');
}
});
HTML:
<form>
<input id="password" value="" />
<input class="form_input" id="Special" />
<input class="form_input" id="Nothing Special" />
</form>
目标是,如果ID =“password”的第一个输入没有禁用属性,则具有某个类的所有输入都会禁用该属性。如果第一个输入被禁用,则没有任何反应。即其他输入不会获得禁用属性。
答案 0 :(得分:2)
您的javascript语法和$()
的使用都不正确。如果语句需要围绕要计算的表达式使用括号,$('.form_input input')
会在<input>
个元素中查找.form_input
个元素。
您还可以使用您希望disabled
元素上的.form_input
属性与{disabled
属性相反的逻辑将整个块缩短为一行。 1}}元素。
尝试:
#password
答案 1 :(得分:1)
喜欢这个?的 jsFiddle example 强>
var block = false;
if ($('#password').attr('disabled')) {
block = false;
} else {
block = true;
}
if (block) {
$('.form_input').attr('disabled', 'disabled');
} else {
$('.form_input').removeAttribute('disabled');
}
或超精简版:
$('.form_input').attr('disabled',!$('#password').attr('disabled') );
<强> jsFiddle example 强>
答案 2 :(得分:0)
$(document).ready(function() {
var foo = $('#password').attr('disabled');
if (foo == 'disabled'){
$('.form_input').attr('disabled','disabled');
}else{
$('.form_input').removeAttribute('disabled');
}
});
工作演示: http://jsfiddle.net/thewingser/6Pu3E/27/
不需要使用布尔block
。说实话,我的变量foo
并不是真的需要。我只是为了可读性而这样做了。