Учитывая следующее:
<select id="location">
<option value="a" myTag="123">My option</option>
<option value="b" myTag="456">My other option</option>
</select>
<input type="hidden" id="setMyTag" />
<script>
$(function() {
$("#location").change(function(){
var element = $(this);
var myTag = element.attr("myTag");
$('#setMyTag').val(myTag);
});
});
</script>
Это не работает ...
Что мне нужно сделать, чтобы значение скрытого поля обновилось до значения myTag при изменении выбора. Я предполагаю, что мне нужно что-то сделать для получения текущего выбранного значения ...?
Попробуй это:
источник
Это потому, что элемент является «Выбрать», а не «Опция», в которой у вас есть пользовательский тег.
Попробуйте это:
$("#location option:selected").attr("myTag")
.Надеюсь это поможет.
источник
Попробуй это:
В функции обратного вызова для
change()
,this
относится к выбору, а не к выбранному параметру.источник
Предположим, у вас есть много вариантов. Это может сделать это:
источник
Ты довольно близко
источник
Более простой синтаксис, если одна форма.
var option = $('option:selected').attr('mytag')
... если более одной формы.
var option = $('select#myform option:selected').attr('mytag')
источник
Вот весь сценарий с вызовом AJAX для определения целевого списка на странице с несколькими списками. Ничто из вышеперечисленного не работало для меня, пока я не использовал атрибут «id», хотя имя моего атрибута «ItemKey». С помощью отладчика
Chrome Debug
Я смог увидеть, что выбранная опция имеет атрибуты: с сопоставлением с «id» JQuery и значением.
Вот файл JSON для создания ...
Надеюсь, это поможет, спасибо всем выше за то, что вы дали мне это далеко.
источник
Попробуйте этот пример:
источник
источник
Вы также можете попробовать это с
data-myTag
источник
Самый простой,
источник