предотвращение изменения пользователем состояния переключателя - PullRequest
3 голосов
/ 19 августа 2011

Я пытаюсь запретить пользователю изменять состояние переключателя с помощью jquery или javascript.Я мог бы сделать это с отключенным свойством, но мне не нравится серый цвет.Я показываю пользователю истинное / ложное состояние одной из моих моделей, поэтому я не хочу, чтобы они могли ее изменить.В группе имеется только одна радиокнопка, которая либо отмечена (true), либо не отмечена (false) в зависимости от модели, поэтому они не могут отменить ее, но могут проверить и изменить состояние радиокнопки.Радиокнопка не отправляется в форме, поэтому она предназначена только для чтения из базы данных / модели, но было бы плохо работать с пользователем, если они изменили ее на противоположное значение, которое на самом деле находится в базе данных.Вот моя последняя попытка структуры jquery и html.

<input type="radio" checked="checked">

или

<input type="radio">

и jquery

$(document).ready(function () {
    $(input[type = "radio"]).change(function () {
        $(this).removeAttr("checked");
    });
});

Ответы [ 4 ]

6 голосов
/ 19 августа 2011

Как насчет

<input type="radio" onclick="return false;"/>

или

$(document).ready(function () {
    $(input[type = "radio"]).click(function () {
        return false;
    });
});

?

4 голосов
/ 19 августа 2011

Попробуйте это

$(document).ready(function () {
    $('input[type = "radio"]').change(function () {
        return false;
    });
});
2 голосов
/ 19 августа 2011

Попробуйте использовать свойство disabled, поскольку оно предназначено для этого, но затем измените стиль переключателя с помощью CSS.

Однако это не похоже на интуитивно понятный пользовательский интерфейс. Пользователи знают, что означает затенение, с этим, вероятно, не стоит связываться!

0 голосов
/ 20 августа 2011

Поэтому, как только я получил кавычки на моем селекторе, он сработал.

$("input[type = radio]") 

или

$("input[type = 'radio']")

есть набор или опции для кода работающей функции изменения

this = false;
$(this).prop("checked", false);
$(this).attr("checked", false);
$(this).removeAttr("checked");
$(this).removeProp("checked");

Есть ли преимущество в использовании одного над другим?Есть ли разница между любой из четырех функций jquery для управления свойствами / атрибутами тега?Основываясь на документах, похоже, что prop / removeProp были просто добавлены в 1.6, а attr / removeAttr были добавлены в 1.0, так что attr / removeAttr просто используется для устаревших целей или jquery предлагает один поверх другого?

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