隐藏基于基于JavaScript的多选字段选择的字段

我有一个名为“城市”的多选字段。我还有另外两个邮编和里程字段。

在页面加载时,将启用所有三个字段-城市,邮政编码,英里。

  1. 当我单击城市字段时,邮政编码和里程将被禁用
  2. 当我单击邮政编码或英里时,城市将被禁用

我的代码如下所示:

//when city is clicked, zip and miles get disabled 
        if( $('#edit-field-city-value').is(':selected')) //city field
        {
            $("#edit-field-zip-value").prop('disabled', true); //zip field
            $("#edit-field-miles-value-all").prop('disabled', true); // miles - option Any
            $("#edit-field-miles-value-1").prop('disabled', true); //miles 1st option
            $("#edit-field-miles-value-2").prop('disabled', true); //miles 2nd option
            $("#edit-field-miles-value-3").prop('disabled', true); //miles 3rd option
            $("#edit-field-miles-value-4").prop('disabled', true); //miles 4th option
         } else {
            $("#edit-field-zip-value").prop('disabled', false); //zip field
            $("#edit-field-miles-value-all").prop('disabled', false); // miles - option Any
            $("#edit-field-miles-value-1").prop('disabled', false); //miles 1st option
            $("#edit-field-miles-value-2").prop('disabled', false); //miles 2nd option
            $("#edit-field-miles-value-3").prop('disabled', false); //miles 3rd option
            $("#edit-field-miles-value-4").prop('disabled', false); //miles 4th option
         }

         //When zip or any of the miles is clicked, the city should be disabled
         if( 
            $("#edit-field-zip-value").is(':clicked') or
            $("#edit-field-miles-value-all").is(':selected') or
            $("#edit-field-miles-value-1").is(':selected') or
            $("#edit-field-miles-value-2").is(':selected') or
            $("#edit-field-miles-value-3").is(':selected') or
            $("#edit-field-miles-value-4").is(':selected') ) {
            $('#edit-field-city-value').prop('disabled', true); 
         } else {
            $('#edit-field-city-value').prop('disabled', false);
         }

我的前端如下所示:

enter image description here

我的代码无法100%工作。含义-当我选择“城市”时,不会触发任何事件。另外,当我单击邮政编码或英里时,不会触发任何事件。对解决此问题有帮助吗?

评论