2012-04-28 3 views
2

Ах, я устал от своего мозга, пытаясь понять это. Новое для JQuery ... как вы, вероятно, скоро сможете сказать ...Форма JQuery - сменить скрытое значение на опцию id

Попытка использовать идентификатор опции для установки значения скрытого ввода, но часы и сотни поисковых запросов Google без решения.

Я выяснил, как вывести значение выбранного параметра с помощью идентификатора селектора, но я хочу получить идентификатор опции, поэтому я могу установить этот уникальный идентификатор в качестве значения скрытого ввода.

<form> 
<select name="amount" id="item_number1"> 
    <option value="1" id="11">one</option> 
    <option value="2" id="22">two</option> 
    <option value="3" id="33">three</option> 
</select> 
<input type="button" value="Set Value" onclick="$('#item_number2').val($('#item_number1').val())"/> 
<input id="item_number2" type="text" /> 

Ps: скрытый вход разве в таком виде, в таком виде я использую поле ввода текста, так что я могу представить себе, если мой метод работает.

ответ

1

Вы можете получить идентификатор выбранного варианта, как это:

<script> 
$(function(){ 
    var sItem = document.getElementById("item_number1"); 
    $("#transfer").on("click", function(){ 
    $("#item_number2").val(sItem[sItem.selectedIndex].id); 
    }); 
}); 
</script> 
<input type="button" id="transfer" value="Transfer ID" /> 
<select name="amount" id="item_number1"> 
    <option value="1" id="11">one</option> 
    <option value="2" id="22">two</option> 
    <option value="3" id="33">three</option> 
</select> 
<input type="text" id="item_number2" /> 

Примечания, вы не предполагаете, чтобы начать свои значения идентификаторов с номером - это может вызвать проблемы для вас вниз по дороге. Лучше всего придерживаться правил, когда дело касается таких вещей.

Дем: http://jsbin.com/ucujex/edit#javascript,html,live

+0

Спасибо за подсказку по ID, вам придется придерживаться этого. Но у меня проблемы с тем, чтобы это работало. Я заменил другую функцию jquery на эту, и она, похоже, ничего не тянет? – cantaffordretail

+0

@mcflause Я предложил немного другое решение. Проверьте код выше. Удалите атрибут onclick из вашей кнопки. – Sampson

+0

Джонатан, это прекрасно! Вы действительно пошли на лишнюю милю, и я ценю это! – cantaffordretail

1

Вы можете обновить кнопки он onclick на:

$("#item_number2").val($("#item_number1 option:selected").attr("id")); 

Приятное улучшение было бы, чтобы он автоматически изменяется при изменении параметра в select (вам не нужно будет кнопка).

$("#item_number1").change(function() { 
    $("#item_number2").val($("option:selected", this).attr("id")); 
}); 
+0

Спасибо dtbarne, я буду безуспешно реализовывать изменение на опции выбора, чтобы поместить значение в скрытый ввод. – cantaffordretail

+0

Эй! Я пытаюсь реализовать это без везения, можете ли вы понять, что я делаю неправильно? http://jsbin.com/anatod/edit#javascript,html,live – cantaffordretail

+0

javascript должен быть после HTML. Также неплохо обернуть код jquery в '$ (document) .ready()' – dtbarne

Смежные вопросы