2016-09-17 9 views
0

更新リンクをクリックしてAjaxリクエストから取得したデータに従ってドロップダウンから値を選択し、i console.logでデータを見ることができるレスポンスを取得しましたドロップダウンリストとの比較が成功し、一致するものがある場合はオプション値の1つが選択されます。ajaxリクエスト後にすべての選択されたオプションを削除します

クリーンボタンをクリックして選択したオプションをクリアすると、初めて動作します。

しかし、データを取得するために更新リンクを再度クリックすると、レスポンスがconsole.logのときにデータが取得されたことがわかりますが、ドロップダウンから何も選択されません。

すべてのヘルプ - ここに私のコードは、ループを使用して比較する必要はありませダウン

<p> 
    <a href="javascript:;" class="updateCenter">Update</a> 
</p> 

<form method="post" action="controller/update" class="formInuts"> 
    <select required="" name="semester_id" class="form-control semester"> 
     <option value="">Pleas Select</option> 
     <option value="1">Semester 1</option> 
     <option value="2">Semester 2</option> 
     <option value="3">Semester 3</option> 
    </select> 
    <button type="submit" class="btn btn-primary saveCorCnt">SAve</button> 
    <button type="" class="btn btn-primary clearCorCnt">Clean</button> 
</form> 


// Update 
$('.updateCenter').on('click', function(event) { 
    event.preventDefault(); 

    // semester id 
    var corcnt_id = 1; 

    $.ajax({ 
     url: url+'/findcorcnt', 
     type: 'POST', 
     dataType: 'JSON', 
     data: { 
      corcntid: corcnt_id 
     }, 
     beforeSend: function() { 
     }, 
     success: function(respond) { 
      // Data retrieved successfully 
      // first time and every time i click on update link 
      // Changing the current action to update 
      var formInuts = $('.formInuts').attr('action',url+'/updatecorcnt'); 

      // Change save btn to update 
      var saveBtn = $('.saveCorCnt').text('update'); 

      // Selecting the values from dropdowns semesters 
      $('.semester option').each(function(){ 
       if (parseInt(this.value) == respond.semester_id) { 
        $(this).attr('selected', true); 
       } 
      }); 
     }); 


$('.clearCorCnt').on('click', function(event) { 
    event.preventDefault(); 

    $(':input','.formInuts') 
     .removeAttr('checked') 
     .removeAttr('selected') 
     .not(':button, :submit, :reset, :hidden, :radio, :checkbox') 
     .val(''); 

    var saveBtn = $('.saveCorCnt').text('save'); 
}); 
+0

、 'checked'、' selected'などで作業するときに**プロパティを操作したく**ない属性、すなわち '.prop()' – adeneo

答えて

1

の下ではありません。次のようにしてみてください。追記として

$('.semester').val(respond.semester_id); 
+0

を使用私は思いましたループオーバーして値を比較することになっています。 :)私はこれを試してみる –

関連する問題