改变表单元素

时间:2013-11-19 23:54:56

标签: javascript html dom

我希望有一个表单下拉列表,列出特定类型项目的所有品牌。从该列表中选择一个品牌后,将出现一个新的下拉列表,其中列出了所选品牌的所有不同型号。

如何根据使用JavaScript选择的品牌来显示特定的下拉列表。 我的JSFiddle链接中的代码非常简单,我只是为了给它一些视觉效果。

JSFiddle Link

<select>
    <option>Select Make
    <option>Toyota 
    <option>Honda
    <option>Ford
</select>

4 个答案:

答案 0 :(得分:0)

<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>

<script>

$( document ).ready(function() {
$('#SelectBox').change(function() {
    if (this.selectedIndex == 1)
    {
        $( "#Example").empty();
        $( "#Example").append('<option>Corolla<option><option>Camry<option><option>Prius<option>');
    }
    else if (this.selectedIndex == 2)
    {
        $( "#Example").empty();
        $( "#Example").append('<option>Accord<option><option>Civic<option><option>Odyssey<option>');
    }
    else if (this.selectedIndex == 3)
    {
        $( "#Example").empty();
        $( "#Example").append('<option>Focus<option><option>Explorer<option><option>Taurus<option>');
    }

});
});
</script>

</head>
<body>
<form id="myForm">

Make:<br />
<select id="SelectBox">
    <option>Select Make</option>
    <option id='Toyota' onclick='showMe()' >Toyota</option>
    <option id='Honda'>Honda</option>
    <option id='Ford'>Ford</option>
</select><br />

Model:<br />
<select id="Example">
    <option>example
</select>
</form>

</body>
</html>

答案 1 :(得分:0)

我的方法:http://jsfiddle.net/PjFMh/2/

要更新内容,您需要一个侦听器,以了解make选择器将发生的更改。首先,您需要抓住可以设置侦听器的选择器本身(var $make = document.getElementById('make'))。这是由$make.onchange = function() { ... }完成的。在此函数内部,获取当前所选索引的索引,以便确定要显示的模型数组。

首先,清除模型选择器的内容,以便您可以使用新内容填充它。对于每个模型,创建一个新的<option>并使用当前模型填充它。然后,将其附加到选择器本身。

存储数据的位置有不同的方法(对于make和model),但我选择将其作为数组存储在JavaScript中。您可以拥有可以隐藏/显示代码的HTML元素,但是如果您稍后要更改某些内容,我认为这更加模块化。

答案 2 :(得分:0)

首先,您需要修复HTML,<option>必须有一个结束标记。

许多方法之一是http://jsfiddle.net/Tt5gf/1/,我给你写了一些评论,尝试使用它 - 添加或删除一些选项,更改现有选项,进行一些练习

答案 3 :(得分:0)

一种非常简单的方法是在文本文件中包含所有第二个选项,并将它们作为第一个选择器上的单击或更改事件加载。像这样:

$("#firstSelector").click(function() {
  x = this.value;
   $("#secondSelector").load("[path to text file]/' + x + '.txt");
});

因此,您为每个文本文件指定第一个选择器中每个选项的值的名称,每个文本文件的内容是要在第二个选择器中加载的选项的html。要在第二个选择器中添加/更改选项,只需替换相应的文本文件。