从xml中提取数据时,文本字段不会更新

时间:2011-11-29 03:43:45

标签: javascript jquery xml ajax jquery-selectors

好吧,我有一个选择下拉列表和beneeath它是一个文本字段。如果我弹出一个静态文本字段并单击其选项,我想用选择下拉列表中选择的值填写文本字段。它工作正常。 这是一个

DEMO

现在我从xml中提取选择下拉选项,当我再次使用它来点击其选项时更新我的​​文本字段时,它不起作用;

这是DEMO

我知道在第二个演示中,xml不在正确的位置,但我在本地计算机上测试了它并且它不起作用。

感谢任何帮助。 感谢

2 个答案:

答案 0 :(得分:2)

我假设您实际上正在使用多个选择。如果是这样,只需将处理程序绑定到select元素:

$(".generalTemplate").click(function() {
    var su = $(this).find(':selected').text();
    $("#sub").val(su);
});

这会在单击时找到所选元素,并且在插入后不需要绑定到单个option元素。

如果您没有使用倍数,则需要绑定到change事件。

$(".generalTemplate").change(function() {
    var selected = $(this).find(':selected');
    if( selected.index() > 0 ) {
        var su = selected.text();
        $("#sub").val(su);
    }
});

最终,发生的事情是异步 AJAX调用正在执行其回调函数 之后运行代码来绑定处理程序。

换句话说,代码不会等待AJAX​​响应在执行之前到达。通过绑定到select本身,您知道它已在文档中可用,因此没有同步问题。

答案 1 :(得分:1)

您可以尝试使用live

$(".generalTemplate >option").live("click",function() {


                    var su = $(this).text();
                    $("#sub").val(su);
                });