Dado o seguinte:
<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>
Isso não funciona ...
O que preciso fazer para atualizar o valor do campo oculto para o valor de myTag quando a seleção é alterada. Estou assumindo que preciso fazer algo para obter o valor atualmente selecionado ...?
Tente o seguinte:
fonte
Isso porque o elemento é o "Selecionar" e não a "Opção" na qual você tem a tag personalizada.
Tente isto:
$("#location option:selected").attr("myTag")
.Espero que isto ajude.
fonte
Tente o seguinte:
Na função de retorno de chamada para
change()
,this
refere-se à opção selecionar, não à opção selecionada.fonte
Suponha que você tenha muitas seleções. Isso pode ser feito:
fonte
Você está bem perto:
fonte
Sintaxe mais simples, se um formulário.
var option = $('option:selected').attr('mytag')
... se houver mais de um formulário.
var option = $('select#myform option:selected').attr('mytag')
fonte
Aqui está o script inteiro com uma chamada AJAX para direcionar uma única lista em uma página com várias listas. Nenhuma das outras coisas acima funcionou para mim até que eu usei o atributo "id", mesmo que meu nome de atributo seja "ItemKey". Usando o depurador
Depuração do Chrome
Pude ver que a opção selecionada tinha atributos: com um mapa para o "id" do JQuery e o valor.
Aqui está o arquivo JSON para criar ...
Espero que isso ajude, obrigado a todos acima por me levarem tão longe.
fonte
Tente este exemplo:
fonte
fonte
Você também pode tentar este também com
data-myTag
fonte
O mais fácil,
fonte