如果不是输入S,则禁用输入B& C.

时间:2012-08-07 20:09:35

标签: javascript jquery

http://jsfiddle.net/6Pu3E/

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”的第一个输入没有禁用属性,则具有某个类的所有输入都会禁用该属性。如果第一个输入被禁用,则没有任何反应。即其他输入不会获得禁用属性。

3 个答案:

答案 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并不是真的需要。我只是为了可读性而这样做了。