2012-04-28 11 views
2

私の頭を痛めつけてこれを理解しようとしています。すぐにわかるでしょう...Jqueryフォーム - 隠された値をオプションIDに変更

隠された入力の値を設定するためにオプションidを使用しようとしましたが、何も解決されずに数百件のGoogle検索が行われました。

セレクタIDを使用して選択したオプションの値を取得する方法を知りましたが、オプションのIDを取得したいので、その一意のIDを非表示入力の値として設定できます。

<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" /> 

シモンズ:このフォームで隠し入力イマイチ、この形式では、私は私のメソッドが動作している場合ので、私は視覚化することができ、テキスト入力フィールドを使用しています。

答えて

1

あなたはこのように選択されたオプションのIDを取得することができます:

<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" /> 

注意を、あなたは数字で、あなたのID値を開始すると仮定されていない - これは道をあなたのための問題を引き起こす可能性があります。このようなものについては、ルールに従うのがベストです。

デモ:http://jsbin.com/ucujex/edit#javascript,html,live

+0

IDのヒントをお寄せいただきありがとうございます。しかし、私はこれを動作させるのに問題があります。私はこれと他のjquery関数を置き換え、何も引っ張っていないようですか? – cantaffordretail

+0

@mcflause私はわずかに異なる解決法を提供しました。上記のコードを確認してください。ボタンから 'onclick'属性を削除してください。 – Sampson

+0

ジョナサン、これは完璧です!あなたは本当に余分なマイルを行ったと私はそれを感謝します! – cantaffordretail

1

あなたがあなたのボタンのonclickを更新することができます。素敵な改善があなたがselectでオプションを変更すると、それが自動的に変化させることである

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

(あなたは必要はありませんボタン)をクリックします。

$("#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の後にある必要があります。 '$(document).ready()'にjqueryコードをラップするのも良い考えです。 – dtbarne

関連する問題