Как выделить опцию, как обычное событие "click", а не просто добавить attr "selected" - PullRequest
0 голосов
/ 13 февраля 2019

https://jsfiddle.net/silenthunter206/96ukznye/

У меня есть выбор ввода с ID = "COUNTRYID", и значение "LOCAL" получается, когда я нажимаю на определенные карты, используя JQUERY.Прежде чем я объясню, моя логика уже верна.Но JQUERY часть не является.

Когда LOCAL равен '1', он сначала отключит все OPTION, затем найдет OPTION ID = "MY" и включит только этот.

И когда LOCAL не равен "1", всеОПЦИИ включены.

Моя проблема:

Когда LOCAL равен '1', я не могу и не должен иметь возможность нажимать другие параметры, кроме OPTION ID = "MY", и он работает должным образоми я заставляю его быть "выбранным", используя JQUERY.

Но когда я нажимаю на другие карты, а LOCAL не равен 1, и я нажимаю OPTION ID = "US" , тогда я снова нажимаю на карты, которые LOCAL равен 1 , выделенная строкаостается на ID = "США".Моя следующая проблема - когда я отправляю форму, вместо ID = "MY" отправляется ID = "US", хотя все опции, кроме ID = "MY", включены, и я явно установил атрибут OPTION ID = "MY" как выбранный

Как выделить опцию как фактическое событие щелчка вместо простого добавления атрибута, выбранного для опции?

Я пробовал keydown (), keyup () и focus () и нажмите (), но ни одна из них не выделяет опцию, у которой 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");

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...