Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用一个选择来确定表单上哪些其他选择是可见的_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用一个选择来确定表单上哪些其他选择是可见的

Javascript 使用一个选择来确定表单上哪些其他选择是可见的,javascript,jquery,html,Javascript,Jquery,Html,我在表格上选择了一个主要类别: <select name ="main_category"> <option value = "maincat1">Main Cat 1</option> <option value = "maincat2">Main Cat 2</option> </select> 在这种情况下,如果在主下拉列表中选择maincat1,我希望看到: <select1 display="">&l

我在表格上选择了一个主要类别:

<select name ="main_category">
<option value = "maincat1">Main Cat 1</option>
<option value = "maincat2">Main Cat 2</option>
</select>
在这种情况下,如果在主下拉列表中选择maincat1,我希望看到:

<select1 display=""></select>
<select2 display=""></select>
<select3 display=""></select>
<select4 display="none"></select>
<select1 display="none"></select>
<select2 display=""></select>
<select3 display="none"></select>
<select4 display=""></select>

如果在主下拉列表中选择maincat2,我希望看到:

<select1 display=""></select>
<select2 display=""></select>
<select3 display=""></select>
<select4 display="none"></select>
<select1 display="none"></select>
<select2 display=""></select>
<select3 display="none"></select>
<select4 display=""></select>


我知道需要用到一些Javascript或JQuery,但我完全是个初学者。我确切地知道我想做什么,但无法找到最好的方法。

我想说,像这样做:

首先,为所有选择项(除了#main_category)指定一个类,以便它们可以一起引用

var rules = {
    maincat1: ['select1','select2','select3'],
    maincat2: ['select2','select4']
}

$('#main_category').change(function(){
    var target = $(this).val();
    //hide all selects first
    $('.select-class').hide();
    //loop through the tags in your predefined rules, and show those elements
    $.each(rules[target], function(index, value) {
        $(value).show();
    });
});

在我看来,作为一名开发人员,您应该使用对不同页面的请求来加载您的选项。我不知道您是否正在使用服务器端脚本,但我希望这样做:


额外页面.scriptextension

如果选择1,则
其他的
结束

附加页面结束。脚本扩展名 然后在你的主页上你放了这样的东西:

<select name ="main_category" id="mainCat">
     <option value = "maincat1">Main Cat 1</option>
     <option value = "maincat2">Main Cat 2</option>
</select>

<script>

$("mainCat").onchange(function(){
     $(this).load("extra_page.scriptextension")
});
</script>

主要类别1
主要类别2
$(“mainCat”).onchange(函数(){
$(this.load(“额外的页面.脚本扩展”)
});
在额外的页面中,您可以更好地控制如何使用数据库中的选项和类别填充second select


这只是想法的草稿。。。当然,您应该使用正确的jQuery和javascript语法,以及您使用的服务器端脚本

通过学习如何使用JavaScript更改HTML元素样式,可能会重复开始。这看起来对我来说将是一个,但是我在这里做错了什么。。。jQuery没有包含在您的小提琴中。它正在工作,元素没有显示,因为它们没有内容。在开发人员控制台中查看DOM。谢谢你,我现在已经添加到了我的实际代码中,没有什么乐趣,我已经更新了fiddle。我错过了什么?首先,您的代码需要包装在document.ready函数中,以便在创建元素后可以绑定事件处理程序。其次,由于您现在正在引用元素ID,所以规则数组中的值需要是css ID选择器。