简体   繁体   English

如何在HTML网页中禁用下拉选项

[英]How to make the dropdown option disable in HTML web page

I have web page with three dropdown. 我有三个下拉菜单的网页。 It is working fine, except for one problem. 除了一个问题,它工作正常。

When we select any item from one dropdown then it is disabled in the other two dropdowns, but if we again select another item from first dropdown then it disables this item but it also disables the previously selected item. 当我们从一个下拉列表中选择任何项目时,它会在其他两个下拉列表中被禁用,但如果我们再次从第一个下拉列表中选择另一个项目,则会禁用此项目,但它也会禁用之前选择的项目。

The previously selected should be enabled when new option is disabled. 禁用新选项时,应启用先前选择的选项。

Here is the code: 这是代码:

<select id="select1" name="indication_subject[]">
  <option value="" selected="selected">a </option>
  <option value="1"> Accounting</option>
  <option value="2"> Afrikaans</option>
  <option value="3"> Applied Information and Communication Technology</option>
  <option value="4"> Arabic</option>
  <option value="5"> Art and Design</option>
  <option value="6"> Biology</option>
  <option value="7"> Business Studies</option>
</select>

<select id="select2" name="indication_subject[]">
  <option value="" selected="selected">a </option>
  <option value="1"> Accounting</option>
  <option value="2"> Afrikaans</option>
  <option value="3"> Applied Information and Communication Technology</option>
  <option value="4"> Arabic</option>
  <option value="5"> Art and Design</option>
  <option value="6"> Biology</option>
  <option value="7"> Business Studies</option>
</select>

<select id="select3" name="indication_subject[]">
  <option value="" selected="selected">a </option>
  <option value="1"> Accounting</option>
  <option value="2"> Afrikaans</option>
  <option value="3"> Applied Information and Communication Technology</option>
  <option value="4"> Arabic</option>
  <option value="5"> Art and Design</option>
  <option value="6"> Biology</option>
  <option value="7"> Business Studies</option>
</select>

Here is the JavaScript code: 这是JavaScript代码:

$(document).ready(function(){  
  $("select").change(function() {   
    $("select").not(this).find("option[value="+ $(this).val() + "]").attr('disabled', true);
  }); 
}); 

Demo Link: http://jsfiddle.net/x4E5Q/137/ 演示链接: http//jsfiddle.net/x4E5Q/137/

jsFiddle 的jsfiddle

Combine the focus event with the change event to achieve what you want: 将焦点事件与更改事件相结合,以实现您的目标:

JavaScript JavaScript的

$(document).ready(function () {
    var previous;

    $("select").focus(function () {
        // Store the current value on focus and on change
        previous = this.value;
    }).change(function () {
        // Do something with the previous value after the change

        $("select").not(this).find("option[value=" + previous + "]").prop('disabled', false);
        $("select").not(this).find("option[value=" + $(this).val() + "]").prop('disabled', true);
        // Make sure the previous value is updated
        previous = this.value;
    });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如果使用 jquery 在页面加载时未选择任何选项,如何禁用下拉菜单? - How to disable dropdown if no option selected on page load using jquery? 如何使 onchange 下拉选项-url 在我的页面中打开 - How to make onchange dropdown option-url to open in my page 如何使下拉选项链接到按钮单击页面 - How to make dropdown option link to page on button click 如何使用下拉列表选项(Javascript,HTML)默认禁用下拉列表 - How to disable dropdown list on default using dropdown list option (Javascript,HTML) 如何从第 2 页更改 html 下拉菜单中的选项与 onclick function 从第 1 页 onclick function - How to change from page-2.html the option from dropdown menu with onclick function from page-1.html 如果有一个选项,如何禁用选择下拉列表? - How to disable select dropdown if it has one option? 如何在多选下拉菜单中禁用 2 个选项并将该选项变灰 - How to disable 2 options in multiselect dropdown and grayout that option 如何基于日期禁用下拉选项 - How to Disable dropdown option on basis of date 如何禁用下拉菜单中已选择的选项? - How to disable an already selected option in a dropdown menu? 通过 Typescript 和 HTML 选择选项后,如何禁用整个 select 下拉字段? - How can I disable an entire select dropdown field after selecting an option through Typescript and HTML?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM