У меня есть две кнопки-переключателя при изменении события. Я хочу изменить кнопку. Как это возможно? Мой код
<input type="radio" name="bedStatus" id="allot" checked="checked" value="allot">Allot
<input type="radio" name="bedStatus" id="transfer" value="transfer">Transfer
скрипт
<script>
$(document).ready(function () {
$('input:radio[name=bedStatus]:checked').change(function () {
if ($("input[name='bedStatus']:checked").val() == 'allot') {
alert("Allot Thai Gayo Bhai");
}
if ($("input[name='bedStatus']:checked").val() == 'transfer') {
alert("Transfer Thai Gayo");
}
});
});
</script>
if($("input[name='bedStatus']:checked").val() == 'allot')
можно написатьif($("input[name='bedStatus']").val() == 'allot')
Ответы:
Вы можете использовать
this
который относится к текущемуinput
элементу.http://jsfiddle.net/4gZAT/
Обратите внимание, что вы сравниваете значение с
allot
обоими операторами if и:radio
селектором.В случае, если вы не используете JQuery, вы можете использовать
document.querySelectorAll
иHTMLElement.addEventListener
методы:источник
:radio
Селектор не рекомендуется (в JQuery).this
значении, либо хотите использовать значение окружающего контекстаthis
в вашем обработчике, который использует этот фрагментthis
. И утверждать, что использование обычных функций - это «старая дурная практика», совершенно бессмысленно! Кроме того, старые браузеры не поддерживают синтаксис функцииArray#includes
стрелок, и для поддержки старых браузеров следует использовать транспортер и шимм. Зачем делать простой ответ, который не имеет ничего общего со сложными функциями стрелок?this
я используюevent.target
.Адаптация вышеуказанного ответа ...
http://jsfiddle.net/xwYx9
источник
.on()
действительно выигрывает по сравнению с вышесказанным, однако, учитывая динамические селекторы, это, безусловно, единственный путь в jQuery 1.7+on
имеет преимущества, когда вы предоставляете контекст для делегирования события или даже для динамических селекторов, как вы сказали, но способ, которым вы его написали, в точности совпадает с ответом выше.Более простой и понятный способ - использовать класс с ответом @ Ohgodwhy.
скрипт
источник
JS Fiddle
источник
$(this).is(":checked")
использованияthis.checked
. Это чистый JS, и поэтому он намного быстрее.Используйте функцию onchage
источник
Простое решение ES6 (только javascript) .
источник
источник
источник
Если переключатели добавляются динамически, вы можете использовать это
источник
источник