Как отключить флажок по умолчанию всегда
У меня есть 2 флажка внутри формы, и оба эти флажки были обернуты внутри form
.
Для одного из form
я добавил атрибут autocomplete="off"
.
Ниже приведен фрагмент кода
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<form name="chkBoxForm" >
<div>
<input type="checkbox" value="100" name="product"/>My Checkbox1
</div>
</form>
<form name="chkBoxForm" autocomplete="off">
<div>
<input type="checkbox" value="200" name="product"/>My Checkbox2
</div>
</form>
</body>
</html>
Теперь моя проблема здесь, если мы проверим эти флажки вручную, и если мы нажмем F5, то флажок с атрибутом autocomplete="off"
не будет снят. Но флажок, который не имеет этого атрибута, остается проверенным. Это происходит в FireFox 22.
Это зависит от браузера и браузера.
В IE оба флажка остаются отмеченными, а в Chrome оба флажка не отмечены.
Но когда я нажимаю ввод в адресной строке, он не отображается во всех браузерах.
Может ли кто-нибудь сказать мне, что эти флажки не отмечены всегда, когда мы нажимаем F5?
Я знаю, что это можно обрабатывать через Javascript.
Есть ли другой способ html для этого?
Ответы
Ответ 1
Нет, в простом HTML нет способа. Javascript может быть вашим единственным решением в настоящее время.
Прокрутите все флажки в javascript и установите для них флажок:
var checkboxes = document.getElementsByTagName('input');
for (var i=0; i<checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].checked = false;
}
}
заверните его в прослушиватель onload, и вы должны быть в порядке:)
Ответ 2
JQuery
$('input[type=checkbox]').removeAttr('checked');
или
<!-- checked -->
<input type='checkbox' name='foo' value='bar' checked=''/>
<!-- unchecked -->
<input type='checkbox' class='inputUncheck' name='foo' value='bar' checked=''/>
<input type='checkbox' class='inputUncheck' name='foo' value='bar'/>
+
$('input.inputUncheck').removeAttr('checked');
Ответ 3
Если у вас есть флажок с идентификатором checkbox_id. Вы можете установить его состояние с помощью JS с помощью prop('checked', false)
или prop('checked', true)
$('#checkbox_id').prop('checked', false);
Ответ 4
Одно быстрое решение, которое пришло на ум:
<input type="checkbox" id="markitem" name="markitem" value="1" onchange="GetMarkedItems(1)">
<label for="markitem" style="position:absolute; top:1px; left:165px;"> </label>
<!-- Fire the below javascript everytime the page reloads -->
<script type=text/javascript>
document.getElementById("markitem").checked = false;
</script>
<!-- Tested on Latest FF, Chrome, Opera and IE. -->
Ответ 5
Это поведение, характерное для браузера, и способ создания более удобных для пользователей форм заполнения форм (например, перезагрузка страницы при возникновении ошибки и не потеряние того, что они только что напечатали). Таким образом, нет надежного способа отключить это в браузерах, не задав значения по умолчанию при загрузке страницы с помощью javascript.
Firefox, кажется, отключает эту функцию при указании заголовка:
Cache-Control: no-store
Смотрите question.
Ответ 6
Простой способ, только HTML, без JavaScript, без JQuery
<input name="box1" type="hidden" value="0" />
<input name="box1" type="checkbox" value="1" />
Ответ 7
Ну, я думаю, вы можете использовать checked = "false". Это способ html оставить флажок снят.
Вы можете обратиться к http://www.w3schools.com/jsref/dom_obj_checkbox.asp.