2017-03-08 25 views
1

ドロップダウンの選択に基づいて入力フィールドを自動作成しました。私の問題は、2番目の選択ボックスが対応する入力フィールドに入力されていないことです。私はこれが間違っていることを知っている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

彼らは第二のアイデアは、複数のcoursecodesを選択することで、論理 –

+0

になりますどのような変更を選択したときに同じことを行っています。たとえば、新しい学生が登録しており、登録には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

関連する問題