2017-03-08 93 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

相关问题