[英]Dropdown list which excludes value selected in previous dropdown list: PHP
我是Web开发的新手,需要有关PHP表单编码的帮助。
需要创建一个包含5个下拉列表的表单。 第一个下拉列表中的值为“ A,B,C,D,E,F,G”。 如果假设在第一个下拉列表中选择了“ C”,则第二个下拉列表将具有除“ C”以外的所有值,即; “A,B,d,E,F,G”。 如果假设我们在第二个下拉列表中选择“ A”,则第三个下拉列表中显示的值将是除下拉列表1和2中选择的值以外的所有值。因此,下拉列表3中的值将为“ B,D,E,F,G”。
同样,其他两个下拉框也会发生这种情况。
您可以尝试的一种方法是跟踪需要在阵列中删除哪些选项。 然后,您可以定义哪个选择控制哪个。 举个例子:
给定这个html
<select id="a" var="b">
<option>-- SELECT --</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
</select>
<select id="b" var="c" disabled>
<option>-- SELECT --</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
</select>
<select id="c" disabled>
<option>-- SELECT --</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
</select>
你可以使用这个jQuery
var doNotShow = [];
$('select').change( function() {
var nextSelect = $(this).attr("var");
doNotShow.push($(this).val());
$.each(doNotShow, function( index, value ) {
$("#" + nextSelect + " option[value='" + value + "']").prop('disabled', true);
});
$("#" + nextSelect).prop('disabled', false);
$(this).prop('disabled', true);
});
doNotShow.push($(this).val());
跟踪所有先前选择的值,然后$.each
从下一个select
的行中删除(或在这种情况下,禁用)不需要的选项,该select
存储在select
的var
属性中。
这将使用jquery甚至Javasript完成,使用jQuery您可以阅读.change()函数的文档,对于具有onchange属性的Javascript,请尝试阅读此问题,它将对您有所帮助: HTML SELECT-触发器即使选项未更改,JavaScript ONCHANGE事件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.