我有一个包含81个单元格的数独网格,其id
值来自00
到88
,所有这些都是文本框。我编写了以下jQuery
代码,该代码仅警告在当前行或当前列或当前3 * 3
子网格中找到了重复值。如何仅在行和/或列和/或子网格中找到重复值的位置突出显示或闪烁特定单元格?当用户删除新插入的数字时,也应忽略突出显示的颜色或闪烁效果。提前谢谢。
$('table tr td input').on({
"input": function () {
var cellValue = $(this).val();
var cellName = $(this).attr('name');
var row = parseInt(cellName.substring(0, 1));
var col = parseInt(cellName.substring(1, 2));
var id;
var value;
for (var i = 0; i < 9; i++) {
if (i != col) {
id = row + "" + i;
value = document.getElementById(id).value;
if (value == cellValue && cellValue.length > 0) {
alert("Duplicate Value is Found");
}
}
}
for (var j = 0; j < 9; j++) {
if (j != row) {
id = j + "" + col;
value = document.getElementById(id).value;
if (value == cellValue && cellValue.length > 0) {
alert("Duplicate Value is Found");
}
}
}
var gridRow = row - (row % 3);
var gridColumn = col - (col % 3);
for (var r = gridRow; r < gridRow + 3; ++r) {
for (var c = gridColumn; c < gridColumn + 3; ++c) {
if (r != row || c != col) {
id = r + "" + c;
value = document.getElementById(id).value;
if (value == cellValue && cellValue.length > 0) {
alert("Duplicate Value is Found");
}
}
}
}
}
});
答案 0 :(得分:0)
为了实现这一点,你可以使用jquery的css(),例如
for (var i = 0; i < 9; i++) {
if (i != col) {
id = row + "" + i;
value = document.getElementById(id).value;
if (value == cellValue && cellValue.length > 0) {
$('#'+id).css('background-color','red');//for example
} else {
$('#'+id).css('background-color','inherit');//for example
}
}
}