我有一份公司下拉列表。我还有一些联系人下拉列表(primary_contact,sales_contact,insurance_contact),这些列表都属于“联系人”类。当公司更改时,我使用以下代码更新可用联系人列表:
$('#company').change(function () {
var company = $(this)[0].value.toString();
$.getJSON('<%= ResolveUrl("~/Subcontracts/CompanyContacts/") %>' + company, null, function (data) {
$('.contact').empty().append("<option value=''>**Select Contact**</option>");
$.each(data, function (index, optionData) {
$('.contact').append("<option value='" + optionData.contact_id + "'>" + optionData.contact_name + "</option>");
});
});
});
某些联系人对多个子公司有效。如果先前选择的联系人显示在新联系人列表中,我希望仍然可以选择他们。因此,如果先前选择的sales_contact在列表中,请选择它们。对于primary_contact和insurance_contact也是如此。我怎样才能做到这一点?
答案 0 :(得分:3)
不知道这是否是“最佳”方式,但我通过这样做得到了它:
$('#company').change(function () {
var company = $(this)[0].value.toString();
var primary_contact = $('#primary_contact').val();
var safety_contact = $('#safety_contact').val();
var insurance_contact = $('#insurance_contact').val();
$.getJSON('<%= ResolveUrl("~/Subcontracts/CompanyContacts/") %>' + company, null, function (data) {
$('.contact').empty().append("<option value=''>**Select Contact**</option>");
$.each(data, function (index, optionData) {
$('.contact').append("<option value='" + optionData.contact_id + "'>" + optionData.contact_name + "</option>");
});
$('#primary_contact').val(primary_contact);
$('#safety_contact').val(safety_contact);
$('#insurance_contact').val(insurance_contact);
});
});
答案 1 :(得分:0)
尝试一下:
$('#company').change(function () {
var company = $(this)[0].value.toString();
for (var i=0; i<this.options.length; i++){
if (this.options[i].selected==true){
var contact = this.options[i].value.toString();
break;
}
}
$.getJSON('<%= ResolveUrl("~/Subcontracts/CompanyContacts/") %>' + company, null, function (data) {
$('.contact').empty().append("<option value=''>**Select Contact**</option>");
$.each(data, function (index, optionData) {
if (optionData.contact_id == contact)
$('.contact').append("<option value='" + optionData.contact_id + " selected='selected''>" + optionData.contact_name + "</option>");
else
$('.contact').append("<option value='" + optionData.contact_id + "'>" + optionData.contact_name + "</option>");
});
});
});