Jquery 如何基于另一个选择选项更改选择选项?
这是我的htmlJquery 如何基于另一个选择选项更改选择选项?,jquery,Jquery,这是我的html <select id="type"> <option value="item1">item1</option> <option value="item2">item2</option> <option value="item3">item3</option> </select> <select id="size"> <option value="">-- s
<select id="type">
<option value="item1">item1</option>
<option value="item2">item2</option>
<option value="item3">item3</option>
</select>
<select id="size">
<option value="">-- select one -- </option>
</select>
下面是我尝试过但失败的jquery
$(document).ready(function() {
if( $("#type").val("item1"))
{
$("#size").html("<option value='test'>test</option><option value="test2">test2</option>);
}
elseif( $("#type").val("item2"))
{
$("#size").html("<option value='anothertest1'>anothertest1</option>");
}
});
基本上,我想做的是,如果在类型中选择了一个选项,那么大小选择将填充与之相关的选项。我该怎么做
谢谢下面是一个您正在尝试做的示例=> $document.readyfunction{ $type.changefunction{ var val=$this.val; 如果val==item1{ $size.htmlitem1:测试1项目1:测试2; }如果val==item2,则为else{ $size.htmlitem2:测试1项目2:测试2; }如果val==item3,则为else{ $size.htmlitem3:测试1项目3:测试2; }如果val==item0,则为else{ $size.html-选择一个-; } }; }; -选择一个项目- 项目1 项目2 项目3 -选择一个-
if语句正在设置该值。你想通过这样做来比较吗
if ($("#type").val() == "item1") {
...
}
不过达利扎德是对的。您需要一个事件处理程序。document.ready仅在页面DOM准备好使用时运行一次。我不理解您试图实现的目标,但您需要一个事件侦听器。比如:
$('#type').change(function() {
alert('Value changed to ' + $(this).attr('value'));
});
这将为您提供所选选项标记的值。您可以在html5中使用数据标记,并使用以下代码执行此操作:
$'mainCat'。关于'change',函数{
所选变量=$this.val;
$expertCat option.eachfunctionitem{
console.logselected;
var元素=$this;
console.logelement.datatag;
如果element.datatag!=选中{
元素。隐藏;
}否则{
元素.show;
}
} ;
$expertCat.val$expertCat选项:可见:first.val;
};
纳维德
爪哇语
马马尔
用户界面
Java Android
网状物
服务器
后端
网
作为对@Navid_pdp11的补充回答,它将允许选择第一个可见项并加载文档。 将以下内容放在您的身体标签下方
<script>
$('#mainCat').on('change', function() {
let selected = $(this).val();
$("#expertCat option").each(function(){
let element = $(this) ;
if (element.data("tag") != selected){
element.removeClass('visible');
element.addClass('hidden');
element.hide() ;
}else{
element.removeClass('hidden');
element.addClass('visible');
element.show();
}
});
let expertCat = $('#expertCat');
expertCat.prop('selectedIndex',expertCat.find("option.visible:eq(0)").index());
}).triggerHandler('change');
</script>
您可以像这样使用switch case: $document.readyfunction{ $type.changefunction{ 切换$this.val{ 案例“项目1”: $size.htmlitem1:测试1项目1:测试2; 打破 案例“项目2”: $size.htmlitem2:测试1项目2:测试2; 打破 案例“项目3”: $size.htmlitem3:测试1项目3:测试2; 打破 违约: $size.html-选择一个-; } }; }; -选择一个项目- 项目1 项目2 项目3 -选择一个-
下面是我使用Jquery过滤器的简单解决方案
$('#publisher').on('change', function(e) {
let selector = $(this).val();
$("#site > option").hide();
$("#site > option").filter(function(){return $(this).data('pub') == selector}).show();
});
您可能希望在处理程序中使用$this.val。在本例中,内容被重构为JavaScript数组。这大大简化了“变更”逻辑。易于维护。谢谢,这正是我需要的。我不太确定下次我会试试的谢谢!,现在我想尝试更改布局。这个示例的唯一问题是它没有设置item1的初始状态值。您需要将其更改为一个值,然后返回item1。如何设置两个选择框的选定值?例如,我为选择器1设置了item3,为选择器2设置了item3:test2,但如果我刷新页面,它就不正确了。这看起来是正确的,如果它正确,我会给你一个向上投票,但仅供参考,代码段不起作用。它起作用,但在第一次运行组合框onchange事件中,如果你更改第一个组合框的值,则不会引发此事件。这很好。。。。这是一个通过选择….来更改值的示例。。。。。在现实世界中,大多数人都会重构这段代码,使其像一个魔咒一样工作:注意,这在IE中不起作用-显示:没有人会隐藏IE中的选项。我使用了你的答案,但不得不再添加几行,以使其在IE中起作用
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form name="index">
<select name="in" onchange="myFunction()">
<option>Select One</option>
<option>One</option>
<option>Two</option>
<option>Three</option>
</select>
<select id="select">
<option>Select One</option>
</select>
</form>
</body>
</html>
<script>
function myFunction(){
var x=document.index.in.value;
if(x=="One"){
document.getElementById('select').innerHTML="<option>A</option><option>Two</option>";
}
}
</script>