Изменить HTML флажок отмечен атрибут - PullRequest
2 голосов
/ 28 октября 2011

Можно ли изменить атрибут «флажок» флажка? Поэтому я хочу изменить значение предварительного выбора в HTML. (Чтобы я мог получить его позже с помощью innerHTML JavaScript).

Ответы [ 3 ]

5 голосов
/ 28 октября 2011

Конечно, если вы собираетесь использовать innerHTML в Javascript, вы можете просто перезагрузить весь бит флажка и установить его или нет.Однако более простой способ сделать это - просто поменять проверенный атрибут в Javascript, если вы все равно будете использовать JS.

document.getElementById("myCheckboxId").checked = true;

EDIT

Хорошо, так что вы должны иметь возможностьчтобы получить это снова с innerHTML в будущем.Как я уже говорил в первом предложении, вы можете просто использовать innerHTML, чтобы изменить флажок.Может быть немного хакерским, но может быть хорошо, если вы уже делаете это.

Вот тестовая html-страница со ссылками, чтобы проверять / снимать галочку с помощью JS, проверять / снимать галочку, меняя весь флажок с innerHTML, иполучить innerHTML для тестирования.Когда вы делаете swap innerHTML, он фактически меняет то, что возвращает innerHTML позже.Это то, что вы имеете в виду?Примечание: хм, я не осознавал этого до сих пор, но похоже, что Firefox меняет мою проверено на флажок = "проверено" , интересно.Поэтому ссылка view innerHTML показывает мне checked = "checked" , а при отсутствии проверки ничего не показывает.Firebug показывает, что он также меняется, но немного по-другому - переходя от checked = "" к нулю.

Вот jsfiddle !

<span id="testdiv1"><input type="checkbox" name="heyhey" id="heyhey" CHECKED></span>
<p>
    <a href="#" onClick="document.getElementById('heyhey').checked = false;">uncheck via JS</a><br>
    <a href="#" onClick="document.getElementById('heyhey').checked = true;">check via JS</a><br>
    <a href="#" onClick="document.getElementById('testdiv1').innerHTML = '<input type=\'checkbox\' name=\'heyhey\' id=\'heyhey\' >';">uncheck via innerHTML swap</a><br>
    <a href="#" onClick="document.getElementById('testdiv1').innerHTML = '<input type=\'checkbox\' name=\'heyhey\' id=\'heyhey\' checked>';">check via innerHTML swap</a><br>
    <a href="#" onClick="alert('innerHTML!: '+'\n\n'+getElementById('testdiv1').innerHTML)">view innerHTML</a>
</p>

Я не знаю, правильно ли я все это избежал, но работает на меня.Лучше не делать этого в строке.

3 голосов
/ 28 октября 2011

Похоже, у вас есть законное использование для setAttribute(), а не эквивалентное свойство (checked).Предполагая, что у вас есть флажок, хранящийся в переменной с именем checkbox, вы можете использовать следующее, чтобы установить проверяемый атрибут по умолчанию:

checkbox.setAttribute("checked", "checked");

... и следующее, чтобы удалить атрибут иустановите флажок по умолчанию:

checkbox.removeAttribute("checked");

Обратите внимание, что это не будет работать должным образом в более старых версиях IE, в которых нарушены реализации методов, связанных с атрибутами.

Я писал об этомболее подробно в ответе на предыдущий вопрос: Добавить атрибут «флажок» по клику jquery

1 голос
/ 28 октября 2011

Да, это возможно

checkboxObject.checked=true|false

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...