2015-04-03 114 views
1

我有一個選擇菜單,觸發ajax帖子,然後顯示成功或失敗消息:成功。選擇菜單重置爲以前選擇的選項

爲菜單中的HTML看起來像這樣:

<select name="return_action_id" class="form-control"> 
    <option value="0"> --- Please Select --- </option> 
    <option value="1" selected>Refunded</option> 
    <option value="2">Credit Issued</option> 
    <option value="3">Replacement Sent</option> 
</select> 

的JavaScript的AJAX後看起來像這樣:

$('select[name="return_action_id"]').change(function(){ 
    var a=$(this); 
    var value = a.val(); 
    $.ajax({ 
     url:'index.php?route=sale/returns/action&token=<?= $token; ?>&return_id=<?= $return_id; ?>', 
     type:'post', 
     dataType:'json', 
     data:'return_action_id='+value, 
     beforeSend:function(){ 
      a.blur().button('loading').append($('<i>',{class:'icon-loading'})); 
     }, 
     complete:function(){ 
      a.button('reset'); 
     }, 
     success:function(json){ 
      if(json['error']){ 
       alertMessage('danger',json['error']); 
      } 
      if(json['success']){ 
       alertMessage('success',json['success']); 
       //$('select[name="return_action_id"] option:selected').prop('selected', false); 
       //$('select[name="return_action_id"] option[value="'+value+'"]').prop('selected', true); 
      } 
     } 
    }); 
}); 

每次我從菜單中選擇一個選項,阿賈克斯火災並按預期創建我的消息,但所選選項未收到所選屬性,並且菜單將恢復爲最初選定的選項。

例如在上面的html代碼中,當前選擇了Refunded。如果我在菜單中選擇信用卡,則Ajax將觸發,菜單將恢復爲已選擇退款。

你會在javascript成功的方法中看到我有一些代碼註釋掉了我試圖讓它表現的地方。

任何幫助,將不勝感激。

+1

您在此處重置'select'菜單'a.button('reset');'? – adricadar 2015-04-03 06:25:52

+0

沒錯,就是這樣,這就是我得到的回收代碼。謝謝一堆。如果您將此作爲答案提交,我會接受它。 – 2015-04-03 06:57:19

+0

我暗示了答案:),我很高興我幫助你:D。 – adricadar 2015-04-03 10:05:40

回答

1

您重置select菜單a.button('reset'),刪除此行並且當前值將保持選中狀態。