Подтвердить что ты не робот

Как отключить флажок по умолчанию всегда

У меня есть 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 для этого?

4b9b3361

Ответ 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;">&nbsp</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.