如何像普通的“ click”事件一样突出显示选项,而不仅仅是添加“ selected”属性

时间:2019-02-13 05:44:01

标签: javascript jquery bootstrap-4

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");

}

0 个答案:

没有答案