2017-03-08 113 views
1

我基於下拉選項創建了自動填充輸入字段。我的問題是第二個選擇框沒有填充相應的輸入字段。我知道這是錯誤的,因爲ID與select1是一樣的,但我怎麼能使它工作?我需要創建大約20個或更多的選擇下拉列表,我無法弄清楚如何解決它。根據下拉選項自動填充輸入字段

$('#coursecode').change(function() { 
 
    var myValue = $(this).val(); 
 
    var myText = $("#coursecode :selected").text(); 
 

 
    if (myText != '' && myText === "11111") { 
 
     $("#coursename").val("Web Dev"); 
 
     $("#prerequesite").val("None"); 
 
     $("#units").val("3"); 
 
    } 
 
    else if (myText != '' && myText === "22222") { 
 
     $("#coursename").val("Math"); 
 
     $("#prerequesite").val("None"); 
 
     $("#units").val("3"); 
 
    } 
 
    else if (myText != '' && myText === "33333") { 
 
     $("#coursename").val("English"); 
 
     $("#prerequesite").val("None"); 
 
     $("#units").val("3"); 
 
    } 
 
    else if (myText != '' && myText === "44444") { 
 
     $("#coursename").val("Psychology"); 
 
     $("#prerequesite").val("None"); 
 
     $("#units").val("3"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="select1"> 
 
     <select id="coursecode" name="coursecode"> 
 
     <option value="">Please select...</option> 
 
     <option value="1">11111</option> 
 
     <option value="2">22222</option> 
 
     <option value="3">33333</option> 
 
     <option value="4">44444</option> 
 
     </select> 
 

 
     <input type="text" id="coursename" name="coursename" value="" readonly> 
 
     <input type="text" id="prerequesite" name="prerequesite" value="" readonly> 
 
     <input type="text" id="units" name="units" value="" readonly> 
 
    </div> 
 

 
    <div class="select2"> 
 

 
     <select id="coursecode" name="coursecode"> 
 
     <option value="">Please select...</option> 
 
     <option value="1">11111</option> 
 
     <option value="2">22222</option> 
 
     <option value="3">33333</option> 
 
     <option value="4">44444</option> 
 
     </select> 
 

 
     <input type="text" id="coursename" name="coursename" value="" readonly> 
 
     <input type="text" id="prerequesite" name="prerequesite" value="" readonly> 
 
     <input type="text" id="units" name="units" value="" readonly> 
 
    </div>

+0

他們要成爲同當第二選擇的變化會是怎樣的邏輯 –

+0

的想法是選擇多個coursecodes。例如,新學員正在註冊,他需要10個科目才能報名。然後,他需要選擇10個課程代碼,信息應該自動填充。我只是使用了下拉式和自動填充功能,因此學生不必手動輸入所有數據。 – WEREBER

回答

0

可以這樣做。

<div class="select1 select-div"><!--add class select-div--> 
    <select id="coursecode" name="coursecode"> 
     <option value="">Please select...</option> 
     <option value="1">11111</option> 
     <option value="2">22222</option> 
     <option value="3">33333</option> 
     <option value="4">44444</option> 
    </select> 

    <input type="text" id="coursename" name="coursename" value="" readonly> 
    <input type="text" id="prerequesite" name="prerequesite" value="" readonly> 
    <input type="text" id="units" name="units" value="" readonly> 
</div> 

<div class="select2 select-div"><!--add class select-div--> 

    <select id="coursecode" name="coursecode"> 
     <option value="">Please select...</option> 
     <option value="1">11111</option> 
     <option value="2">22222</option> 
     <option value="3">33333</option> 
     <option value="4">44444</option> 
    </select> 

    <input type="text" id="coursename" name="coursename" value="" readonly> 
    <input type="text" id="prerequesite" name="prerequesite" value="" readonly> 
    <input type="text" id="units" name="units" value="" readonly> 
</div> 
<script type="text/javascript"> 
$(function() { 
    $('.select-div').on('change', 'select', function (e) {//use on to delegate 
     var v = $(e.target).val(), t = $(e.target).find(':selected').text(), p = $(e.target).closest('.select-div'); 
     if (v) { 
      var c = (function(t) { 
       switch(t) { 
        case '11111' : return 'Web Dev'; 

        case '22222' : return 'Math'; 

        case '33333' : return 'English'; 

        case '44444' : return 'Psychology'; 
       } 
      })(t); 
      p.find('[name="coursename"]').val(c); 
      p.find('[name="prerequesite"]').val('None'); 
      p.find('[name="units"]').val('3'); 
     } 
    }); 
}); 
</script> 

小提琴 - http://codepen.io/anon/pen/QpdZjJ?editors=1010#0

+0

它不是自動填充的。 – WEREBER

+0

什麼應該是自動填充我猜輸入字段@WEREBER –

+0

是的,它不是輸入字段應該是自動填充。我試過你的代碼,但它不會自動填充輸入字段。你能給我一個工作jsfiddle的鏈接嗎? – WEREBER

相關問題