两个相互依赖的选择字段
Two select fields dependent on each other
我要做的是创建两个选择字段,在第一个中选择一些选项后,第二个中的一些选项应该被隐藏。我几乎在那里,除了事实,我的脚本无法找到某些选项的第一个选择字段,但当我把这样的选项在第一个它的工作,但只有第一个,所以它是无用的。我需要它隐藏选项在第二个选择字段根据选项选择在第一个。
更困难的是,我不能在这里添加任何类或id或任何东西。
我想我犯了一些错误,包括我告诉脚本应该编辑哪个元素的方式,但我不知道如何以另一种方式编写。
HTML<select name="NameOne">
<option value="First">Lorem Ipsum1</option>
<option value="Second">Lorem Ipsum2</option>
<option value="Third">Lorem Ipsum3</option>
<option value="CD">Dolor2</option>
</select>
<select name="NameTwo">
<option value="AB">Dolor1</option>
<option value="CD">Dolor2</option>
<option value="EF">Dolor3</option>
</select>
JS
$("select").change(function(){
if($(this).val() == "Second") {
$('option[value="CD"]', this).addClass('hidden');
} else {
$('option[value="CD"]', this).removeClass('hidden');
}
});
CSS .hidden {
display: none
}
请帮助。
由于这里的代码,它不能工作:
$('option[value="CD"]', this)...
简而言之,this
检查当前单击的select选项。由于您单击了第一个选择,因此this
成为第一个选择,并且它试图查找不存在的值CD的选项。那你是怎么做的?很简单,获取第二个选择,找到值为CD的选项,并更改类:)
试试这个
// you can change this to select first select only since selecting all the select doesnot make sense.
$("select").change(function(){
//$("select[name='NameOne']").change(function(){ <--- better
var secondSelect = $("select[name='NameTwo']"); //get second select
if($(this).val() == "Second") {
secondSelect.find('option[value="CD"]').addClass('hidden'); //find option with CD and add Class
} else {
secondSelect.find('option[value="CD"]').removeClass('hidden');
}
});
.hidden {
display: none
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="NameOne">
<option value="First">Lorem Ipsum1</option>
<option value="Second">Lorem Ipsum2</option>
<option value="Third">Lorem Ipsum3</option>
<option value="CD">Dolor2</option>
</select>
<select name="NameTwo">
<option value="AB">Dolor1</option>
<option value="CD">Dolor2</option>
<option value="EF">Dolor3</option>
</select>
$("select").change(function(){
var secondSelect = $(select["name='NameTwo']");
if($(this).val() == "Second") {
secondSelect.find('option[value="CD"]').addClass('hidden');
} else {
secondSelect.find('option[value="CD"]').removeClass('hidden');
}
});
您应该查询特定的select
,然后将option
隐藏在另一个选择中,没有this
,这只会在select
中更改那些option
。
$("select[name='NameOne']").change(function() {
if ($(this).val() == "Second") {
$("select[name='NameTwo'] option[value='CD']").addClass('hidden');
} else {
$("select[name='NameTwo'] option[value='CD']").removeClass('hidden');
}
});
.hidden {
display: none
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="NameOne">
<option value="First">Lorem Ipsum1</option>
<option value="Second">Lorem Ipsum2</option>
<option value="Third">Lorem Ipsum3</option>
<option value="CD">Dolor2</option>
</select>
<select name="NameTwo">
<option value="AB">Dolor1</option>
<option value="CD">Dolor2</option>
<option value="EF">Dolor3</option>
</select>
相关文章:
- 依赖<选择>HTML和JavaScript菜单
- 在<p>标签依赖于<选择>标签,javascript
- Angularjs-uib日期选择器中的customClass依赖于promise
- 如何根据电子邮件模板名称的选择创建依赖的同义词文本区域
- 余烬 2 选择依赖项
- 显示依赖于下拉框选择的表单字段
- 使用选定和选择2插件的依赖多选下拉列表
- 如何创建一组从属选择列表,其中连续列表依赖于前面列表选项的选择
- 使用 html 选择和日期的依赖日期选择器有意义
- 离子选择不会更新依赖于作用域变量的功能
- javascript 如何从一个数组填充相互依赖的<选择>
- 与 json 和选择的依赖关系
- 如何选择具有依赖于 javascript 变量的 id 的行
- 使用JQuery设置文档就绪时的依赖选择的值
- PHP和MySQL的多依赖选择框
- 使用JavaScript为依赖选择RESTful编写代码
- 通过Angular从json文件中填充依赖选择
- 在PHP中使用Jquery和Ajax的动态依赖选择框
- 选择彼此依赖(选择年龄)
- 当表单提交不被接受时,依赖选择器就会出错