【问题标题】:Updating two drop down boxes via Ajax通过 Ajax 更新两个下拉框
【发布时间】:2013-02-21 13:20:38
【问题描述】:

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

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

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

以下是我拥有的代码的 sn-p:

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());
});

谢谢

【问题讨论】:

  • 这里没有更新第二个下拉菜单的代码。提供一个完整的Short, Self Contained, Correct, Example怎么样?
  • 添加了更多代码,当第一个下拉列表更新时,我在控制台日志中看不到任何内容,它还会更新第二个下拉列表。

标签: jquery bind onchange eventtrigger


【解决方案1】:

演示: 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());
});

【讨论】:

  • 仍然无法正常工作。我已经更新了上面的代码,请注意,第一个下拉菜单不会随着用户点击而改变,它会在 AJAX 响应返回时改变。
  • 我会尝试创建一个小提琴。
猜你喜欢
  • 2011-12-30
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多