在没有AJAX的情况下改变显示
Display changing without AJAX
我有2个下拉列表,第二个下拉列表的值应该根据第一个下拉列表中选择的值而改变。当前的下拉列表为。
<select name="first">
<option name="a" value="a">a</option>
<option name="b" value="b">b</option>
<option name="c" value="c">c</option>
</select>
<select name="second">
<option name="a1" value="a1">a1</option>
<option name="a2" value="a2">a2</option>
<option name="b1" value="b1">b1</option>
<option name="b2" value="b2">b2</option>
<option name="c1" value="c1">c1</option>
<option name="c2" value="c2">c2</option>
</select>
我希望第二个下拉显示根据在第一个下拉选择的值,即,如果"a"在第一个被选中,那么只有a1和a2应该显示。下拉值也从数据库中提取由于
只有有限的选项可以这样做
- OnChange事件
- 经典html/javascript/post refresh
一种选择是以标准形式(如JSON)加载数据库中的所有内容。然后,您必须编写javascript,以便在用户与每个项目交互时动态地构建下拉菜单。
这里有一个例子,你如何去做http://jsfiddle.net/9Z5t8/1/
有一些缺点。如果你有大量的数据(数百条记录)要传输,这将是缓慢的,但它是可以的,对于一些记录。
您可以将选项保存在单独的数组中,并在选择值时插入适当的选项:http://jsfiddle.net/KTQ7d/.
var arr = [];
var first_select = document.getElementsByTagName('select')[0]
var second_select = document.getElementsByTagName('select')[1]
var elems = second_select.getElementsByTagName('option');
for(var i = 0; i < elems.length; i++) {
arr.push(elems[i].value);
}
first_select.onchange = function() {
second_select.innerHTML = '';
for(var i = 0; i < arr.length; i++) {
if(arr[i][0]
==
first_select.options[first_select.selectedIndex].value) {
var opt = document.createElement('option');
opt.name = arr[i];
opt.value = arr[i];
opt.innerHTML = arr[i];
second_select.appendChild(opt);
}
}
};
相关文章:
- 在不改变状态的情况下,根据减少器中的给定索引更改嵌套数组值
- 在不改变循环速度的情况下更改更新速度
- 另一个“;如何在不离开网页的情况下改变URL”;
- 在套接字中发送文件.在不改变用户窗口位置的情况下执行IO操作
- 在不改变值的情况下格式化输入类型文本
- 在不改变整个状态的情况下改变state数组(REACT / REDUX)
- 如何在不影响其他模态的情况下用CSS改变模态的宽度?
- 如何克隆一个XML节点,改变其中的值,并在不改变所有节点的情况下添加它
- 在不改变元素大小的情况下放大元素
- 如何在没有第三方JS库的情况下改变文本区域滚动条的颜色
- 在不离开页面的情况下改变按钮的颜色
- 如何在不调用函数的情况下改变jQuery的执行上下文
- 如何在不复制的情况下改变对象
- 谷歌地图如何在不重新加载和不使用历史API的情况下改变其URL ?
- 如何在不创建新对象的情况下改变nokia.maps.map.StandardMarker的颜色
- 在不重新加载的情况下改变Li中的Dom元素
- Facebook如何在不重载页面或使用# or的情况下改变浏览器地址栏中的URL ?
- 如何用Angular和Node JS在不重载页面的情况下改变数据
- 在没有AJAX的情况下改变显示
- Javascript -如何在没有'this'的情况下改变作用域和访问方法?