我正在使用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时?
提前致谢,如果有更多需要的信息,请告诉我们!
答案 0 :(得分:0)
想出来。这是其他任何试图做到这一点的答案:
.prop("disabled", easyGame[i][j] !== -1 ? true : false)