1

我有两个通过 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());
});

谢谢

4

1 回答 1

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());
});
于 2013-02-21T13:41:23.100 回答