https://jsfiddle.net/silenthunter206/96ukznye/
我输入了ID为“ COUNTRYID”的select,当我使用JQUERY单击某些卡片时,将检索到“ LOCAL”的值。在我解释之前,我的逻辑已经是正确的。但是JQUERY部分不是。
当LOCAL为'1'时,它将首先禁用所有OPTION,然后找到OPTION ID =“ MY”并仅启用此OPTION。
并且当LOCAL不为1时,所有OPTION都被启用。
我的问题:
当LOCAL为'1'时,我不能并且应该不能单击OPTION ID =“ MY”以外的其他选项,它可以按预期工作,并且我使用JQUERY强制将其“选中”。
但是当我单击其他卡且LOCAL不为1时,然后单击OPTION ID =“ US” ,然后再次单击LOCAL为1的卡, 高亮显示的行保留在ID =“ US”上。我的下一个问题是,当我提交表单时,即使启用了除ID =“ MY”以外的所有选项,并且我显式地将属性OPTION ID =“ MY”设置为选定< / p>
如何像实际点击事件一样突出显示选项,而不是仅将选择的属性添加到选项中?
我尝试了keydown(),keyup()和focus()和click(),但都没有突出显示attr为“ selected”的选项
if(LOCAL =='1'){
$('#COUNTRYID > option').each(function(){
var ID = $(this).attr("id");
$(this).attr("disabled", "disabled");
})
$("#COUNTRYID option[id=MY]").removeAttr("disabled");
$("#COUNTRYID option[id=MY]").attr("selected","selected");
}else{
$('#COUNTRYID > option').each(function(){
var ID = $(this).attr("id");
if(ID == 'COUNTRYIDLABEL'){
$(this).attr("disabled", "disabled");
}else{
$(this).removeAttr("disabled");
}
});
$("#COUNTRYID option[id=MY]").attr("selected","selected");
}