2016-09-27 84 views
-1

我正在使用選擇jquery插件。提交表單失敗後,我需要保持選定的值。我有單選擇這麼多值。我弄成這個樣子:jquery保存選定的值後提交失敗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> 

,並使用JavaScript通過的script.js文件顯示選項值:

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

其實我是用笨並沒有那麼多的樣本代碼保持提交表單後提交表單失敗,如下所示:

<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