通过Ajax更新两个下拉框

时间:2013-02-21 13:20:38

标签: jquery bind onchange eventtrigger

我有两个通过Ajax更新的下拉框,手动使用时都可以正常工作。

用户点击第一个下拉列表并选择一个进行Ajax调用的项目并更新第二个下拉框。当用户单击第二个下拉Ajax响应更新表时。

现在我的问题: 我希望能够通过URL将用户发送到该表单并传递两个变量,以便表单检查变量并自动更新两个下拉列表。我可以在没有任何问题的情况下更新第一个下拉菜单并触发更改事件。但由于某种原因,第二个下拉框值不会更新。

以下是我的代码片段:

jQuery('#jform_make').val('<?php echo $make; ?>');
jQuery('#jform_make').trigger('change', function() {
    console.log("state changed");
    jQuery('#jform_service').val('<?php echo $service; ?>');
    jQuery('#jform_service').change();
});
//jQuery('#jform_make').change( function(){
jQuery('#jform_make').bind('change', function() {
    console.log("state changed");
});

这甚至不会在控制台中记录任何内容。

更新

jQuery('#jform_make').val('<?php echo $make; ?>').change();
jQuery('#jform_make').change(function(event) {
    console.log(jQuery(this).val());
});

由于

1 个答案:

答案 0 :(得分:0)

演示: http://jsfiddle.net/dU7kz/1/

<强> HTML:

<select id="dd1" class="dropdown"></select>
<select id="dd2" class="dropdown"></select>

<强> JS:

$('#dd1').append('<option value="1">My option 1</option>');
$('#dd1').append('<option value="2">My option 2</option>');
$('#dd1').append('<option value="3">My option 3</option>');
$('#dd1').append('<option value="4">My option 4</option>');
$('#dd1').append('<option value="5">My option 5</option>');
$('#dd1').val('3');

$('#dd2').append('<option value="6">My option 6</option>');
$('#dd2').append('<option value="7">My option 7</option>');
$('#dd2').val('7');

$('.dropdown').change(function(event) {
    alert($(this).val());
});