Я пытаюсь разрешить пользователю устанавливать флажки в хронологическом порядке.JQuery: запретить снятие флажка
<table id="status">
<tr><td>Ready <input type="checkbox"></td></tr>
<tr><td>Set <input type="checkbox"></td></tr>
<tr><td>Go <input type="checkbox"></td></tr>
</table>
Пользователь не допускается, чтобы снять флажки и разрешается только щелкнуть в порядке Ready
, Set
, Go
. Для этого я могу добавлять события только к флажкам, а не к элементу td
.
$("#status input[type='checkbox']").on("change",function(event) {
if($(this).parents("tr:first").prev("tr").length==0) {
var first_checkbox = 1;
} else {
var first_checkbox = 0;
}
if($(this)
.parents("tr:first")
.prev("tr")
.find("input[type='checkbox']")
.is(":checked") || first_checkbox==1) {
$(this).attr("checked",true);
}
}
});
Это позволяет только щелкнуть, если щелкнуть предыдущий флажок, но как я могу предотвратить блокировку флажка?
Ницца. У меня было подобное решение, за исключением использования CSS 'указателей-событий': http://jsfiddle.net/yudj7934/. 'disabled' кажется лучшим решением. –
Указатели-указатели могут быть более желательными на самом деле, в зависимости от контекста OP использования флажков, потому что, когда флажки отключены (или какие-либо данные на самом деле), их значения не отправляются при отправке формы :) – Terry
Хорошо, я не был даже осознавая это. –