2014-10-02 255 views
0

我有一個包含文本框和選擇框的表單。我正在向PHP頁面發送Ajax請求,並且根據該請求自動填寫此表單。關於填充文本框沒有問題,但如何確定選定的選擇框選項?任何幫助將被appriciated。如何根據Ajax請求更改選擇框選擇選項

$(document).ready(function(){ 
    $("#companyFillSelectBox").change(function(){ 
     var value = $("select#companyFillSelectBox option:selected").val(); 
     $.ajax({ 
      type: 'POST', 
      url: 'companyFill.php', 
      dataType: "json", 
      data:{companyID:value}, 
      success:function(answer){ 
       $('#companyNameText').val(answer[0].companyName); 
       $('#companyAddressTextArea').val(answer[0].companyAddress); 
       $('#companyNetAdressText').val(answer[0].companyWebAddress); 
       $('#companyPhoneText').val(answer[0].companyPhone); 
       $('#companyFaxText').val(answer[0].companyFax); 
       $('#companyCeoText').val(answer[0].companyCeo); 
       $('#companyHRText').val(answer[0].hrDirector); 
       $('#numOfIengText').val(answer[0].numOfIENG); 
       $('#numOfEngText').val(answer[0].numOfENG); 
       $('#numOfWhiteCollarsText').val(answer[0].numOfIENG); 
       $('#totalEmpText').val(answer[0].numOfEmployees); 
       $('#establishmentYearText').val(answer[0].yearOfEstablishment); 
       $("#fieldOfBusinessSelectBox option[value=answer[0].yearOfEstablishment]").attr('selected', 'selected'); 
      }, 
      error:function(){ 
       alert("An error has occured !"); 
      }   
     }); 
    }); 
}); 

回答

2

要做到這一點,你試圖將剛剛拍攝的語法修復方式:

$("#fieldOfBusinessSelectBox option[value=" + answer[0].yearOfEstablishment +"]").attr('selected', 'selected'); 

但是,你可以做到這一點,你做了所有的人以同樣的方式:

$("#fieldOfBusinessSelectBox").val(answer[0].yearOfEstablishment); 
+0

在第一個解決方案中,'attr()'不起作用。改用'prop()'。我還想補充一點,如果有多個選項具有相同的值,第一個解決方案(使用prop)將選擇最後一個出現選項,而第二個(使用val)將選擇第一個出現選項。 – Traze 2014-10-02 16:08:21

+0

'attr'確實有效 - '道具'不是必需品,儘管在這裏常見的是看到人們堅持要你**必須使用'道具'。他運行的是什麼版本的jQuery?我們不知道。而且由於這個問題甚至沒有提到重複的價值,所以這並不重要。他們可能被禁用,或不可見。這些代碼運行後可以動態添加它們。沒有「假設」的結束,所以我只是堅持這個問題;) – Archer 2014-10-02 16:14:20

+0

我堅持我評論的重要性。 'attr'不會觸發FireFox中的選擇。人們在這裏堅持這一點是有原因的。此外,使用'selected'屬性是一種設置價值的混亂方式。唯一的情況是重複值選項(即默認爲0,頂部爲空白選項)。 – Traze 2014-10-02 16:42:29