У меня есть флажок, который я не хочу, чтобы у пользователя был прямой доступ. Я хочу, чтобы они приняли некоторые условия. Для этого я хочу, чтобы у них была возможность щелкнуть по отключенному флажку, который открывает это мини-всплывающее окно (не проверяя поле), которое содержит термины, чтобы читатель мог их прочитать и принять. Когда они их примут, всплывающее окно закроется, и флажок будет проверен. Проблема, которая у меня есть, я не могу понять, как запустить функцию onclick отключенного флажка.функция запуска onclick отключена checkbox
ответ
Обработка щелчка по отключенному элементу действительно сложна ... но я не думаю, что это желательный пользовательский интерфейс в любом случае. Если флажок отключен, некоторые пользователи увидят это и будут не склонны даже пытаться щелкнуть по нему. Вместо этого рассмотрите перехват события click и его использование в ваших собственных целях, используя preventDefault.
<input type='checkbox' id="cb" name="cb" />
$(document).ready(function() {
$("#cb").click(function(e) {
// cancel click event so that checkbox remains unchecked
e.preventDefault();
// display popup here, then manually check the checkbox if needed
}
});
Я подумал об этом, и я попрошу его поблагодарить. К комментарию о сдерживании пользователей эти условия необходимы для отправки формы, поэтому, если они попытаются отправить ее, не нажимая на условия принятия, они будут предложены в любом случае для отправки. – Osman
Я также пробовал это. Он не работает. – vijay
@vjshah Я не уверен, что вы имеете в виду ... Я прототипировал его, и он работает для меня, как и следовало ожидать ... там есть решение в другом месте на SO, хотя, если хотите, посмотрите на тему, связанную с выше , – McGarnagle
Флажок отключен, возможно, неправильно обрабатывает события щелчка и будет отображаться как «отключенный».
Но, вы можете попробовать это:
- добавить атрибут в поле, чтобы сохранить, если отображалось всплывающее окно (например, дата-всплывающее окно = «0»)
- обрабатывать событие OnClick на флажке
- Если всплывающее окно было отображено (data-popup = "1"), просто верните true, чтобы разрешить его использовать.
- Если всплывающее окно не отображается (data-popup = "0"), поведение, установить data-popup = "1" и отобразить всплывающее окно с условиями и положениями
Другим усовершенствованием, в зависимости от дизайна вашего всплывающего окна, может быть добавление нового флажка в этом всплывающем окне, и когда пользователь будет читать условия, он может принять условия и положения непосредственно из всплывающего окна. Если вы это сделаете, вам нужно обработать событие click во флажке во всплывающем окне и также автоматически установить флажок на своей странице.
@dbaseman
Вот мой код. Посмотрите. Вот, я получаю предупреждение на div, но не на флажке.
<html>
<head>
<script type="text/javascript" src="jQuery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#checkbox, #hello").click(function(){
alert("hello");
});
});
</script>
</head>
<body>
<div id="checkbox">
<p> hello</p>
<input type="checkbox" id="hello" disabled="disabled" />
</div>
</body>
</html>
$('#chk').click(function() {
if (confirm('Accept')) {
$(this).attr('checked', 'checked');
}
else {
$(this).attr('checked', false); }
});
Вы можете попробовать JQuery .something как $ ('флажок: отключено'). Нажмите (функция() {}); – vijay
Я пробовал, и это не работает, спасибо! – Osman
Возможный дубликат [Как я могу выполнить функцию при щелчке по отключенному флажку?] (Http://stackoverflow.com/questions/6781467/how-can-i-execute-a-function-when-a-disabled- checkbox-is-clicked) – McGarnagle