2011-07-14 12 views
0

私はこの問題を抱えています。私がしたいのは、jquery javascriptを使ってオンザフライで選択ボックスにオプション値を作成することです。配列から選択ボックスにオプションを追加する方法は?

たとえば、あなたの好きな果物は何ですか?したがって、ユーザーはデフォルトの選択ボックスから回答を選択できる必要があります。 "アップル、オレンジ、ナシ、バナナ"。次に、 "Add fruits more"をクリックすると、同じ選択配列で2番目の選択ボックスが表示されます。

基本的にthe previous stack overflow question from another memberを参照すると、私はここまで情報をまとめることができました。しかし、デフォルトの "Select Fruit"オプションとは別に、実行時に配列からオプション値を出力することはできませんでした。

$(function() { 
// set the array 
var fruit = new Array("Apple", "Orange", "Pear", "Banana"); 

function addFruit() { 
    $.each(fruit, function(key, value) { 
     $('#fruit') 
     .append($('<option>', { value : key }) 
     .text(value)); 
    }); 
} 

var i = $("li").size() + 1; 
$("a#addmore").click(function() { 
    $("#addmore_row").append('<li>' + 
    '<select name="fruit[]" id="fruit">' + 
    '<option value="">Select Fruit:</option>' + 
    addFruit()     
    + '</select>' + 
    '</li>'); 
    return false; 
}); 

}); 

誰でもこのお手伝いをしていただけますか?どうもありがとうございました。

答えて

1

addFruitは、selectを表す文字列を構成しているときに呼び出されています。追加する文字列をまだ作成しているので、selectはまだ実際には存在しませんが、まだaddFruitが呼び出されています。つまり、selectを追加した後に文字列連結の外へaddFruitを移動します。言い換えれば

、この:

$("#addmore_row").append('<li>' + 
'<select name="fruit[]" id="fruit">' + 
'<option value="">Select Fruit:</option>' + 
'</select>' + 
'</li>'); 
addFruit(); 
return false; 
+0

私が試みたが、私の代わりに新たに作成された選択ボックスに追加のHTML内であったデフォルトの選択ボックスに追加するようです。最初のselect defaultボックスに同じ名前を使用するのではなく、新しいselectボックスに別の名前を使用する必要がありますか? –

+0

私は問題があると思う、2番目の選択ボックスのために働くが、3番目と4番目の選択ボックスに値を追加しません。何ができるのか分かりますか? –

+0

リンクが複数回クリックされている場合は、追加する 'select'ごとに固有のIDを使用する必要があります。 – icktoofay

関連する問題