如果...则按下按钮功能

时间:2013-09-06 18:29:47

标签: javascript jquery dom if-statement input

我如何为这段代码做一个if ... then语句?

  $('body').on('click', '.icon-lock', function () {
        var lockedarea = $(this).parents(0).eq(2);
    $(lockedarea).find('input[type=text],input[type=checkbox],textarea,select').prop('disabled', true);
  });

现在当我点击它时,我想要发生的事情发生在那些输入变得不可编辑的时候。但是,我试图说,如果按下此按钮,则会发生这种情况。如果它再次按下,则.prop('disabled',false)。然而,当我刚刚开始时,在做这类事情时我很容易感到困惑。

3 个答案:

答案 0 :(得分:5)

您需要在某种变量中跟踪是否要禁用它。试试这个:

var disable = true;
$('body').on('click', '.icon-lock', function () {
    var lockedarea = $(this).parents(0).eq(2);
    $(lockedarea).find('input[type=text],input[type=checkbox],textarea,select').prop('disabled', disable);
    disable = !disable;
});

答案 1 :(得分:3)

使用一些flag

var isDisabled = false;
$('body').on('click', '.icon-lock', function () {
    var lockedarea$ = $(this).parents(0).eq(2),
        inputs$ = lockedarea$.find('input[type=text],input[type=checkbox],textarea,select');
    if ( isDisabled ) {
        isDisabled = false;
        inputs$.prop('disabled', false);
    } else {
        isDisabled = true;
        inputs$..prop('disabled', true);
    }
});

答案 2 :(得分:2)

只需用以下内容替换当前的.prop

.prop('disabled', function (_, val) { return ! val; });