Javascript 在已更改的select的更改事件上激发函数

Javascript 在已更改的select的更改事件上激发函数,javascript,jquery,forms,select,onchange,Javascript,Jquery,Forms,Select,Onchange,我有一个表单,有三个选择字段。我希望第二个选择基于第一个选择进行填充,然后第三个选择基于第二个选择进行填充。 所以财产类型->县->市。我的js的基本思想如下 $('.property_type').change(function(){ if(this.value == 'com'){ $('.property_detail_county').html('MY HTML'); }else if((this.value == 'res')){ $('.property_detail

我有一个表单,有三个选择字段。我希望第二个选择基于第一个选择进行填充,然后第三个选择基于第二个选择进行填充。 所以财产类型->县->市。我的js的基本思想如下

$('.property_type').change(function(){
if(this.value == 'com'){
    $('.property_detail_county').html('MY HTML');
}else if((this.value == 'res')){
    $('.property_detail_county').html('MORE HTML');

}
所有这些都在.ready()中。这很好用。我的问题是,当您尝试编写用于填充第二个select(城市)的第二个函数时,它不会触发任何操作。这是我的第二个函数,也是ready的内部

$('.property_detail_county').change(function(){
console.log('Changed');
}))

我的理论是,由于条件的原因,第二个函数永远不会被读取或加载。你们知道另一种方法吗

提前谢谢


另外,如果这个问题已经得到解答,请随意给我指出正确的方向,我在任何地方都找不到主题。

这取决于您在第二个下拉列表中输入的HTML。例如,如果HTML类似于:

<div id="a"><select>...</select></div>

<div id="b">...</div>
。。。
...
您的javascript可以做到这一点:

if(this.value == 'com'){
    $('.property_detail_county').html('<select>...</select>');
}
if(this.value==“com”){
$('.property_detail_county').html('.…');
}
您已经完全替换了第二条select语句,甚至没有与之相关的更改。更改甚至与您更换的旧
相关

您只需恢复更改代码即可:

if(this.value == 'com'){
    $('#b').html('<select id="sel_b">...</select>');
    $("#sel_b").click(function() {
        ... the stuff to do when 2nd one is clicked ...
    }
}
if(this.value==“com”){
$('#b').html('.');
$(“#选择b”)。单击(函数(){
…单击第二个按钮时要执行的操作。。。
}
}
如果定义一个函数来处理第二组内容,效果会更好


请注意,还有其他方法可以做到这一点,即当更改事件冒泡到
或DOM树更高的某个元素时检测到它。您可以在jQuery文档中了解这一点。它被称为“事件委派”.

更改事件是在用户选择一个值时触发的,而不是在您更改select的内容时触发的!是的.property\u detail\u country是select输入还是某个div?如果您需要在使用js更改select的值后触发对其的更改,则使用trigger()您将需要触发
.change()当您以编程方式更改第二个选项的值时,
事件手动执行。
.change()
在您使用代码更改值时不会被调用,除非您使用代码专门触发它。您可能正在寻找类似“感谢您的响应”的内容。这很有帮助。