使用jQuery有条件地禁用输入框

时间:2014-11-02 21:15:13

标签: javascript jquery sudoku

我正在使用jQuery构建一个Sudoku游戏。我已经构建了大部分逻辑(此时它仍然相当粗糙 - 计划在我得到最后一篇文章后进行重构)。当我生成一块电路板时,我会坚持下去,我想禁用那些特定的输入字段。以下是我用来构建电路板的代码部分:

var context = this;

$td = $('<td>')
    .append($('<input>')
    .data('row', i)
    .data('col', j)
    .data('region', region)
    .val(function(){
        var prefillValue = easyGame[i][j];
        if(prefillValue !== -1){
            context.currentMatrix.rows[i].push(prefillValue);
            context.currentMatrix.columns[j].push(prefillValue);
            context.currentMatrix.regions[region].push(prefillValue);
            return prefillValue;
        }
    })
    .on('keyup', $.proxy(this.validateInput, this))
    .on('click', $.proxy(this.captureInput, this)));

高级视图: 发生的事情是我在easyGame变量中存储了一个数组数组。此变量包含“简易”板的预编号位置。

然后我对每个行和列的easyGame变量进行查找,如果有一个值(也就是说,只要easyGame上的查找不是-1),我将其设置为当前输入框的值,即I我正在建设中。如果查找返回为-1,则输入值保留为空白。

上面的代码运行正常(它很慢而且很笨重,但现在线框就在那里)。

在我遇到困难的情况下,我是否只想禁用初始构建中存在值的输入框(也就是上面的代码)。

我认为我正在过度思考这个但是有没有办法有条理地应用disabled属性.prop('disabled',true) - 也就是当查找不是-1时?

提前致谢,如果有更多需要的信息,请告诉我们!

1 个答案:

答案 0 :(得分:0)

想出来。这是其他任何试图做到这一点的答案:

.prop("disabled", easyGame[i][j] !== -1 ? true : false)