Jquery 根据另一个select的输入将数据推入select
我试图根据在第一次选择中选择的输入,将值推送到“品种”下拉列表中。我有所有需要的数据。我只是不知道如何把它推到select中。数据由breed_data.dog、breed_data.cat等访问。所以最初我在change函数中创建了一个each循环。我不知道从哪里开始,任何提示都将不胜感激Jquery 根据另一个select的输入将数据推入select,jquery,Jquery,我试图根据在第一次选择中选择的输入,将值推送到“品种”下拉列表中。我有所有需要的数据。我只是不知道如何把它推到select中。数据由breed_data.dog、breed_data.cat等访问。所以最初我在change函数中创建了一个each循环。我不知道从哪里开始,任何提示都将不胜感激 <form id="filter" class="filter" action="http://dev/petlist/public/site/index" accept-charset="ut
<form id="filter" class="filter" action="http://dev/petlist/public/site/index" accept-charset="utf-8" method="post">
<select name="petsDropDown" id="form_petsDropDown">
<option value="allPets">All Pets</option>
<option value="barnyard">Barnyard</option>
<option value="bird">Bird</option>
<option value="cat">Cats</option>
<option value="dog">Dogs</option>
<option value="horse">Horse</option>
<option value="pig">Pigs</option>
<option value="smallfurry">Smallfurry</option>
</select>
<select name="breedDropDown" id="form_breedDropDown">
<option value="select_breed">Select Breed</option>
</select>
</form>
$(function(){
$('#form_petsDropDown').change(function(){
$('#form_breedDropDown').prop('disabled',($(this).val()=='allPets'));
$(breed_data).each(function() {
/*console.log(breed_data.dog);
console.log(breed_data.cat);
console.log(breed_data.smallfurry);
console.log(breed_data.bird);
console.log(breed_data.pig);
console.log(breed_data.horse);*/
});
}).change();
});
显示可用的品种
在找到品种时启用“品种”下拉列表
当找到所有品种或未找到匹配品种时,显示选择品种。
什么是数据,一个对象?你能把它添加到你的问题中吗?繁殖数据是从另一个js文件调用的。这是一组狗、猫和所有其他动物。这是一把js小提琴,你可以知道我在做什么。您可能不想在“宠物”菜单的“更改”事件中将“品种”推送到“选择”菜单上的代码,因为每次“宠物”菜单更改时,该代码都会更改。您可能只想在更改事件之前执行一次。由于某种原因,这是由于我累了时出现的一个错误,谢谢您的查看,cheers@user2677350:是的,我打错了,正在写。以下是最终结果:
$('#form_petsDropDown').change(function(){
var breed = $(this).val(), // get current pet
breeds = breed in breed_data // get breeds based on pet
? breed_data[breed] // load matches
: {'select_breed':'Select Breed'}; // default when none are found
$breeds = $('#form_breedDropDown'); // alias
// disable when necessary
$breeds.prop('disabled', !(breed in breed_data)).empty();
// populate results
$.each(breeds, function(v,k){
$('<option>',{'value':v}).text(k).appendTo($breeds);
});
});
$('#form_petsDropDown').change(function(){
$('#form_breedDropDown').prop('disabled',(this.value === 'allPets'));
var options = $([]),
data = this.value in breed_data ? breed_data[this.value] : [];
$.each(data, function(k,v) {
var opt = $('<option />', {text: v, value: v});
options = options.add(opt)
});
$('#form_breedDropDown').html(options);
});