如何根据Ajax请求更改选择框选择选项
问题描述:
我有一个包含文本框和选择框的表单。我正在向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 !");
}
});
});
});
答
要做到这一点,你试图将刚刚拍摄的语法修复方式:
$("#fieldOfBusinessSelectBox option[value=" + answer[0].yearOfEstablishment +"]").attr('selected', 'selected');
但是,你可以做到这一点,你做了所有的人以同样的方式:
$("#fieldOfBusinessSelectBox").val(answer[0].yearOfEstablishment);
在第一个解决方案中,'attr()'不起作用。改用'prop()'。我还想补充一点,如果有多个选项具有相同的值,第一个解决方案(使用prop)将选择最后一个出现选项,而第二个(使用val)将选择第一个出现选项。 – Traze 2014-10-02 16:08:21
'attr'确实有效 - '道具'不是必需品,尽管在这里常见的是看到人们坚持要你**必须使用'道具'。他运行的是什么版本的jQuery?我们不知道。而且由于这个问题甚至没有提到重复的价值,所以这并不重要。他们可能被禁用,或不可见。这些代码运行后可以动态添加它们。没有“假设”的结束,所以我只是坚持这个问题;) – Archer 2014-10-02 16:14:20
我坚持我评论的重要性。 'attr'不会触发FireFox中的选择。人们在这里坚持这一点是有原因的。此外,使用'selected'属性是一种设置价值的混乱方式。唯一的情况是重复值选项(即默认为0,顶部为空白选项)。 – Traze 2014-10-02 16:42:29