jQuery - 禁用选择后面的内容

标签 jquery forms

我正在尝试创建许多下拉菜单,其值取决于之前的选择。 我想要实现的目标是,如果前一个选择尚未选择值,则所有后续选择都将被禁用。

假设有人从第一个、第二个和第三个选项中选择了一个选项 - 然后从第一个选项中选择了一个空白值 - 我希望以下所有选项 - 无论有多少 - 再次被禁用。

我收集了表单中的所有选择:

var sels = obj.closest('form').find('input[type="select"]');

我认为也许我应该获取所选索引的索引,然后禁用所有其他索引,但不太知道该怎么做。

以下是表单的结构:

<form action="" method="post">  

<select name="option-1" id="option-1">
    <option value="">Select one</option>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
</select>


<select name="option-2" id="option-2">
    <option value="">----</option>
</select>

<select name="option-3" id="option-3" disabled="disabled">
    <option value="">----</option>
</select>   

</form>

现在 - 我知道如何启用它们 - 我只需要了解当用户将菜单值之一更改为空白时如何禁用所有相关的。

最佳答案

jQuery 中有一个很棒的函数:nextAll();

当您编写事件处理程序来选择如下所示的字段时,您可以使用此函数跳转到所有下一个选择并禁用它们。

$("select").change(function(){
  $("select").removeAttr("disabled");
  if($(this).val()==0){
    $(this).nextAll().attr("disabled","disabled");
  }
});

您只需正确指定要影响的选择

关于jQuery - 禁用选择后面的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7525650/

相关文章:

javascript - x-editable-bootstrap select2 标签 - 加载指示器永远旋转

javascript - 使用 javascript 在 Bootstrap 面板中阅读更多内容

python - Django form.is_valid() 始终为假

jquery - 从隐藏 div 中的输入字段中删除必填项

C# 动态窗体帮助

jquery - 如何使用 jQuery 将输入设置为只读?

jquery - 无法通过 jQuery 在 SVG 中添加图像 : <image/> tag becomes <img/>

jquery - ASP.NET TabContainer 和 Bootstrap 冲突

javascript - 通过 JavaScript、jQuery 或 PHP 进行简单的 RSVP 表单验证?

javascript - 为什么相同输入字段文本中的 `readonly` 、 `disabled` 和 `required` 无法正常工作?