2017-09-20 14 views
0

私は選択した項目を持っていますが、すでにデフォルト値を追加していますが、フォームを送信した後は空の文字列を返します。どうしてこれなの?Selectは既にデフォルト値を持っていても値を返しません

マイコード:

var c = $('#c').val(); 

populateSelect(cs, '#c', 'My select option'); 

function populateSelect(json, element, defaulttext) { 

    $(element).find('option').remove().end().attr('disabled', false).append($('<option selected>').text(defaulttext).attr('value', '')); 
    $.each(json, function(i, value) { 
    $(element).append($('<option>').text(value).attr('value', value)); 
    }); 

    if (defaulttext != undefined) { 
    $(element).val(defaulttext); 
    } 

} 
+0

これは価値がないためですか? '.attr( 'value'、 '') – epascarello

+0

populate関数を呼び出したときに、この値 'My select option'を既に追加しました – SMH

+0

はい、デフォルトの値を空の文字列に設定します..... – epascarello

答えて

0

あなたのjQueryでselected attributeを設定しますが、あなたが実際にその選択のためのvalueを設定していません。 .attr('value', '').attr('value', 'default')のように変更する必要があります。関数のパラメータから渡すには、.attr('value', defaulttext)を探しています。

さらに、フォームが送信されると値が取得されるように、フィールドにname attributeがあることを確認する必要があります。

希望すると便利です。 :)

+0

doあなたは$(要素).val(defaulttext)を変更することを意味します。 ? – SMH

+0

関数に渡したい場合は、 '.attr( 'value'、defaulttext)'を探しています。 –

+0

完璧に、ありがとうalot :) – SMH

関連する問題