[英]How to create a dropdown list for a input box depends on the value selected in another dropdown of another input box
我有两个输入框作为下拉列表。 为第二个输入框创建的下拉列表取决于第一个输入字段中给定的值。
var firstarray =[{sym: "1", desc: "one"},
{sym: "2", desc: "two"},
{sym: "3", desc: "three"}];
var secondarray =[{sym: "4", desc: "four", firstarraycode: "2"},
{sym: "5", desc: "five", firstarraycode: "2"},
{sym: "6", desc: "six", firstarraycode: "1"}];
通过使用第一个数组,我为第一个输入框创建了下拉列表。
第一个数组的sym
值是第二个输入框的第三个字段( firstarraycode
)。
根据第一个数组选择的sym
值,必须从数组中过滤出第二个输入框的下拉值。
例如,如果我们选择2
在第一个下拉列表,它创建的第二下拉列表以sym
值4
和5
。
试试: http : //jsfiddle.net/aF6Xq/
var firstarray =[{sym:"1",desc:"one"},{sym:"2",desc:"two"},{sym:"3",desc:"three"}];
var secondarray =[{sym:"4",desc:"four",firstarraycode:"2"},{sym:"5",desc:"five",firstarraycode:"2"},{sym:"6",desc:"six",firstarraycode:"1"}];
function fillsecond(array){
$('#second').empty();
$('#second').append("<option>Select</option>");
for (i=0;i<array.length;i++){
$('<option/>').val(array[i].sym).html(array[i].desc).appendTo('#second');
}
}
$('#first').append("<option>Select</option>");
$('#second').append("<option>Select</option>");
for (i=0;i<firstarray.length;i++){
$('<option/>').val(firstarray[i].sym).html(firstarray[i].desc).appendTo('#first');
}
$('#first').change(function(){
var val=$(this).val();
var tempArray = $.grep( secondarray, function(elem){ return elem.firstarraycode == val; });
fillsecond(tempArray);
});
您可以使用多种jQuery实用工具,例如$.map
或$.grep
来过滤数据。
$('#select_one_ID').change(function(){
var val=$(this).val();
var optionsArray=$.grep( secondarray, function(item){ return item.firstarraycode == val; });
/* loop over optionsArray to create new option tags*/
});
API参考: http : //api.jquery.com/jQuery.grep/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.