Javascript 相关下拉菜单问题
我正在润色一点我写的jquery,它可以在两个下拉框上工作。基本上,当第一个下拉列表更改时,它会过滤第二个下拉列表以仅显示适用的选项。如果在第一个下拉列表中选择了第一个选项(值:“无”),则在第二个下拉列表中不显示任何选项 大多数情况下,它工作得很好。问题是:如果在第一个下拉列表中选择第一个选项,则第二个下拉列表将清除。但是,如果在第一个下拉列表中选择另一个选项,则第二个选项将在不应该为空时保持为空 如果你能帮我解决这个问题,我将不胜感激。您可以在此处找到下拉框: PS:如果它有区别的话(但我认为没有),那就是WordPress网站,表单是由GravityForms生成的 注:代码如下:Javascript 相关下拉菜单问题,javascript,jquery,wordpress,gravity-forms-plugin,Javascript,Jquery,Wordpress,Gravity Forms Plugin,我正在润色一点我写的jquery,它可以在两个下拉框上工作。基本上,当第一个下拉列表更改时,它会过滤第二个下拉列表以仅显示适用的选项。如果在第一个下拉列表中选择了第一个选项(值:“无”),则在第二个下拉列表中不显示任何选项 大多数情况下,它工作得很好。问题是:如果在第一个下拉列表中选择第一个选项,则第二个下拉列表将清除。但是,如果在第一个下拉列表中选择另一个选项,则第二个选项将在不应该为空时保持为空 如果你能帮我解决这个问题,我将不胜感激。您可以在此处找到下拉框: PS:如果它有区别的话(但我认
tripFilter = function () {
var tripClass = '.hotel-trip select',
hotelClass = '.hotel-name select',
unusedClass = '.unused-options select';
jQuery(tripClass).change(function(){
//testFunc();
var tripSelect = jQuery(tripClass),
trip = tripSelect.val(),
hotelSelect = tripSelect.parents('form').find(hotelClass);
if (trip === "none|"){
jQuery(hotelClass+" > option").each(function() {
jQuery(this).clone().appendTo(unusedClass);
jQuery(this).remove();
});
} else {
tripnum = trip.match(/JWRP (\d*)/)[1];
//var hotelChoices = [];
jQuery(unusedClass+" > option").each(function() {
jQuery(this).clone().appendTo(hotelClass);
jQuery(this).remove();
});
jQuery(hotelClass+" > option").each(function() {
hotelMatch = jQuery(this).val().match(/(\d*) /);
//console.log(hotelMatch);
if (hotelMatch === null || hotelMatch[1] != tripnum){
jQuery(this).clone().appendTo(unusedClass);
jQuery(this).remove();
//console.log("not a match!");
};
});
}
});
};
jQuery(document).ready(function () {
tripFilter();
});
jQuery(document).bind('gform_post_render', function(event, form_id){
if(form_id == 38) {
tripFilter();
}
});
如果我理解正确的话,第一个dropdowm引导第二个dropdowm。 所以,我认为您可以在第一个下拉列表的“change”事件上添加一个侦听器,以便在每次第一个输入的值经过某些更改时执行您的函数 试着这样做:
$(document).ready(function(){
$('#38').bind('change', tripFilter)
});
Use应该将代码的相关部分粘贴到此处,以便将来的读者能够从中受益-如果url发生更改、网站宕机或其他问题。只需检查浏览器控制台并首先修复这些错误。我正在处理这两个问题,但我认为它们与上面的错误代码无关。谢谢你的答复。我已经有了类似的东西:jQuery(document).ready(函数(){tripFilter();});您的代码会替换那个部分吗?是的,因为每次您从第一个下拉选择中选择一个选项时,都会执行我的代码。你的代码只被触发一次。好吧,我用你的代码替换了我的代码,问题仍然存在。直到我在第一个框中选择“请选择一个”,然后尝试更改它,它才能正常工作。还有其他想法吗?