Я хотел бы показать переключатель, указав его значение, но в зависимости от обстоятельств его нельзя изменить. Disabled не работает, потому что он не передает значение (или делает это?), И он отключает переключатель. Только для чтения - это то, что я ищу, но по какой-то таинственной причине это не работает.
Есть ли какая-то странная уловка, которую мне нужно использовать, чтобы получить доступ только для чтения, чтобы работать как положено? Должен ли я просто сделать это в JavaScript вместо этого?
Кстати, кто-нибудь знает, почему в переключателях не работает только чтение, а в других тегах ввода? Это одно из тех непонятных упущений в спецификациях HTML?
Ответы:
Я подделал readonly только для радио-кнопки, отключив только не проверенные радио-кнопки. Он удерживает пользователя от выбора другого значения, и проверенное значение будет всегда публиковаться при отправке.
Использование jQuery для чтения только:
Этот подход также работал для создания списка выбора только для чтения, за исключением того, что вам нужно будет отключить каждый невыбранный параметр.
источник
readonly
свойство, так как ОП ожидало, что оно будет работать:$(':radio[readonly]:not(:checked)').attr('disabled', true);
Радиокнопки должны быть доступны только для чтения, если есть другие варианты. Если у вас нет других опций, отмеченный переключатель не может быть отключен. Если у вас есть другие параметры, вы можете запретить пользователю изменять значение, просто отключив другие параметры:
Скрипка: http://jsfiddle.net/qqVGu/
источник
onclick="return false"
чтобы предотвратить изменения.Это трюк, с которым вы можете пойти.
источник
onClick="this.checked = <%=value%>"
какое-то разнообразие :)onclick="return false;"
чтобы значениеУ меня есть длинная форма (250+ полей), которая отправляет в БД. Это онлайн-заявление о трудоустройстве. Когда администратор просматривает поданную заявку, форма заполняется данными из базы данных. Входные тексты и текстовые области заменяются текстом, который они представили, но радиомодули и флажки полезно сохранить в качестве элементов формы. Отключение их затрудняет их чтение. Если для свойства .checked установлено значение false, onclick не будет работать, поскольку он может быть проверен пользователем, заполнившим приложение. Так или иначе ...
работает как брелок для «отключения» радио и чекбоксов ipso facto.
источник
Лучшее решение состоит в том, чтобы установить проверенное или непроверенное состояние (либо с клиента, либо с сервера) и не позволять пользователю изменять его после того, как подопечные (т.е. делают его доступным только для чтения) делают следующее:
источник
Я придумал способ с использованием javascript для достижения состояния «только чтение» для флажков и переключателей. Он протестирован с текущими версиями Firefox, Opera, Safari, Google Chrome, а также с текущими и предыдущими версиями IE (вплоть до IE7).
Почему бы просто не использовать отключенное свойство, которое вы спрашиваете? При печати страницы отключенные элементы ввода отображаются серым цветом. Заказчик, для которого это было реализовано, хотел, чтобы все элементы были одинакового цвета.
Я не уверен, что мне разрешено публиковать здесь исходный код, так как я разработал его, работая в компании, но я, безусловно, могу поделиться концепциями.
С событиями onmousedown вы можете прочитать состояние выбора, прежде чем действие щелчка изменит его. Таким образом, вы сохраняете эту информацию, а затем восстанавливаете эти состояния с помощью события onclick.
Часть этого javascript будет работать следующим образом (опять же только концепции):
Теперь вы можете включить / отключить переключатели / флажки, изменив свойства onclick и onmousedown элементов ввода.
источник
Для невыбранных переключателей отметьте их как отключенные. Это препятствует тому, чтобы они отвечали на пользовательский ввод и убирали отмеченный переключатель. Например:
источник
checked="yes"
? Что это за спецификация? Либо используйте,checked="checked"
либо просто атрибутchecked
без значения. То же самое дляdisabled
.Способ JavaScript - это сработало для меня.
Причина:
$('#YourTableId').find('*')
-> это возвращает все теги.$('#YourTableId').find('*').each(function () { $(this).attr("disabled", true); });
перебирает все объекты, захваченные в этом и отключает входные теги.Анализ (отладка):
form:radiobutton
внутренне считается тегом «input».Как и в приведенной выше функции (), если вы пытаетесь распечатать
document.write(this.tagName);
Везде, где в тегах он находит радиокнопки, он возвращает тег ввода.
Таким образом, приведенная выше строка кода может быть более оптимизирована для тегов переключателей, заменив * на input:
$('#YourTableId').find('input').each(function () { $(this).attr("disabled", true); });
источник
Довольно простой вариант - создать функцию javascript, вызываемую для события «onsubmit» формы, чтобы включить радиокнопку назад, чтобы ее значение было отправлено вместе с остальной частью формы.
Кажется, это не упущение в спецификациях HTML, но выбор дизайна (логичный, ИМХО), радиокнопка не может быть прочитана как кнопка не может быть, если вы не хотите ее использовать, то отключи это.
источник
Я обнаружил, что использование
onclick='this.checked = false;'
работает в определенной степени. Переключатель, который был нажат, не будет выбран. Однако если уже была выбрана радиокнопка (например, значение по умолчанию), эта радиокнопка станет невыбранной.Для этого сценария, оставив только значение по умолчанию и отключив другие радиокнопки, вы сохраните уже выбранную радиокнопку и предотвратите ее отмену.
Это решение не является самым элегантным способом предотвращения изменения значения по умолчанию, но оно будет работать независимо от того, включен ли JavaScript.
источник
Попробуйте атрибут
disabled
, но я думаю, что вы не получите значение переключателей. Или вместо этого установите изображения как:Наилучшие пожелания.
источник
Я использую плагин JS, который стилизует элементы checkbox / radio и использовал следующий jQuery, чтобы установить «состояние только для чтения», в котором базовое значение все еще размещено, но элемент ввода кажется недоступным для пользователя, что, как я полагаю, является предполагаемой причиной мы будем использовать входной атрибут только для чтения ...
источник
Как насчет захвата события «On_click ()» в JS и проверки его как здесь ?:
http://www.dynamicdrive.com/forums/showthread.php?t=33043
источник