2016-09-27 14 views
-1

私はChosen Jquery Pluginを使用しています。私はフォームを送信した後に選択された値を保持する必要があります失敗しました。私はと非常に多くの値との単一選択を持っています。Jqueryが選択された状態でサブミットが失敗した後、選択された値を保持する

<select name="fruits" id="fruits" data-placeholder="Choose a fruit..."> 
    <optgroup label="Green color fruit" id="opt-group-1"></optgroup> 
    <optgroup label="Yellow color fruit" id="opt-group-2"></optgroup> 
    // keep going until 20 optgroup .... 
</select> 

とオプション値を表示するには、script.jsファイル経由ではJavaScriptを使用して:私はこのように終わった

<script> 
    var group1 = ['melon', 'watermelon', 'kiwi', ...]; 
    var group2 = ['banana', 'pinapple', 'lemon', ...]; 
    // .... 

    var option1 = ''; 
    for (var i=0;i<group1.length;i++){ 
     option1 += '<option value="'+ group1[i] + '">' + group1[i] + '</option>'; 
    } 
    var option2 = ''; 
    for (var i=0;i<group2.length;i++){ 
     option2 += '<option value="'+ group2[i] + '">' + group2[i] + '</option>'; 
    } 
    // .... 

    $('#opt-group-1').append(option1); 
    $('#opt-group-2').append(option2); 
    // .... 
</script> 

実際に保つために、私はCodeIgniterのを使用していますので、多くのサンプルコードがありますフォームを送信した後、選択した値は、このようなマニュアルコードで失敗しました:

<select name="fruits" id="fruits" data-placeholder="Choose a fruit..."> 
    <option> </option> 
    <optgroup label="Green color fruit" id="opt-group-1"> 
     <option value="melon" <?php echo set_select('fruits', 'melon');?>>melon</option> 
     <option value="watermelon" <?php echo set_select('fruits', 'watermelon');?>>water melon</option> 
     .... 
    </optgroup> 
</select> 

はそれを行うための任意の「jqueryの方法は」ありますか?

答えて

0

私は

<select name="fruits" id="fruits" data-placeholder="Choose a fruit..." data-current-selected-option="<?=$this->input->post("fruits"); ?>"> 
    <optgroup label="Green color fruit" id="opt-group-1"></optgroup> 
    <optgroup label="Yellow color fruit" id="opt-group-2"></optgroup> 
    // keep going until 20 optgroup .... 
</select> 

ような何かにあなたの視野と返信するスクリプトのjs

var currentSelectedPostValue = $("#fruits").attr("data-current-selected-option"); 

function setOptionGroupValues(arrGroup, strTargetGroup) 
{ 
    var option = ''; 
    for (var i=0;i<arrGroup.length;i++) 
    { 
     var strSelected = (currentSelectedPostValue == arrGroup[i]) ? " selected=\"selected\"" : ""; 
     option += '<option value="'+ arrGroup[i] + '"'+strSelected+'>' + arrGroup[i] + '</option>'; 
    } 

    $(strTargetGroup).append(option); 
} 

var group1 = ['melon', 'watermelon', 'kiwi',...]; 
setOptionGroupValues(group1); 
+0

感謝を適応させる これは問題なく動作することができると思いますが、それは働いていません。私は好奇心が強いです。私は今使っているサンプルコードのような手動コードを使用すると思います。そのようにしても、私のフォームの提出は非常に乱雑になります。 – fandiahm

+0

"それは働いていない"とはどういう意味ですか? – sintakonte

関連する問題