Javascript 以数字作为值的HTML连接下拉列表(多个)
基本上,我想创建多于1的下拉列表,其中包含数字作为值,例如Javascript 以数字作为值的HTML连接下拉列表(多个),javascript,html-select,Javascript,Html Select,基本上,我想创建多于1的下拉列表,其中包含数字作为值,例如 <select id="dp1"> <option value='op1'>1</option> <option value='op2'>2</option> <option value='op3'>3</option> </select> <select id="dp2"> <option value='op1'>
<select id="dp1">
<option value='op1'>1</option>
<option value='op2'>2</option>
<option value='op3'>3</option>
</select>
<select id="dp2">
<option value='op1'>1</option>
<option value='op2'>2</option>
<option value='op3'>3</option>
</select>
<select id="dp3">
<option value='op1'>1</option>
<option value='op2'>2</option>
<option value='op3'>3</option>
</select>
1.
2.
3.
1.
2.
3.
1.
2.
3.
这只是一个下拉列表。假设我有3个下拉列表,其中的数字相同,默认值不同,例如dp1->1、dp2->2、dp3->3。因此,现在如果用户将dp3的值更改为1
,则其他下拉列表的值应按照dp1->2
和dp2->3
等顺序自动更改
如果我用其他示例解释,如果用户将dp3的值更改为2,则dp1的值不应更改
,而dp2->3的值应更改
如何使用Javascript/jquery实现这一点。(我正在使用php填充数据库中的下拉列表)
提前谢谢。如果您使用的数据实际上只是数字,那么类似的方法就可以了。下面是一个JSFIDLE示例,它演示了我认为您需要的行为
<select id="dp1" class="dropdown"></select>
<select id="dp2" class="dropdown"></select>
<select id="dp3" class="dropdown"></select>
<script type="text/javascript">
var values = [1, 2, 3];
$(function() {
initDropdowns();
$('select.dropdown').change(function() {
setDropdownValues($(this).attr('id'));
});
});
function initDropdowns() {
var optionsHtml = '';
for(var i = 0; i < values.length; i++) {
var value = values[i];
optionsHtml += '<option value="' + value + '">' + value + '</option>';
}
$('select.dropdown').append(optionsHtml);
setDropdownValues();
}
function setDropdownValues(excludeListId) {
var valuesClone = values.slice();
var $dropdowns = $('select.dropdown');
if(excludeListId) {
valuesClone.splice(Number($('#' + excludeListId).val()) - 1, 1);
}
$('select.dropdown').each(function() {
if($(this).attr('id') !== excludeListId) {
$(this).val(valuesClone[0]);
valuesClone.splice(0, 1);
}
});
}
</script>
var值=[1,2,3];
$(函数(){
初始化下拉列表();
$('select.dropdown').change(函数(){
setDropDownValue($(this.attr('id'));
});
});
函数initDropdowns(){
var optionsHtml='';
对于(var i=0;i
如果您只想更改以前的下拉列表,请购买更改当前的下拉列表,也许此示例代码可以帮助您:
$("select").change(function(){
var selectValue = $(this).val();
var toRemove = 'op';
var value = selectValue.replace(toRemove,'');
var selectId = $(this).attr('id');
var toRemove = 'dp';
var id = selectId.replace(toRemove,'');
id = id-1;
for(var i = id; i>=1; i--){
value = value -1;
var newValue = "op"+value;
$("#dp"+i).val(newValue);
}
});
诸如此类?DropDownList变化背后的逻辑是什么?它们之间有什么关系?