2014-10-02 166 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