如何在ajax调用后触发更改事件

时间:2015-12-08 14:36:48

标签: jquery datepicker

我有一个jquery datepicker函数,它在更改input[type="text"]值后触发。首先,请看一下html布局:

<input type="text" id="date_of_birth" value="" />
<table>
    <thead>
        <tr>
            <th>1st Date</th>
            <th>2nd Date</th>
            <th>3rd Date</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><input type="text" d="5" value="" /></td>
            <td><input type="text" d="6" value="" /></td>
            <td><input type="text" d="9" value="" /></td>
        </tr>
    </tbody>
</table>

实际发生的事情是,每个input[type="text"]附加了datepicker。现在,当有人在#date_of_birth输入中更改日期时,它会更改下表中input个字段的日期,方法是添加在这些输入字段的d属性中所述的天数。表。如果我通过手动选择datepicker日期来更改#date_of_birth,则效果很好。

但是,如果我通过从数据库(通过查询)接收出生日期来更改#date_of_birth,则change #date_of_birth事件未被触发,作为以下结果的日期表格没有变化。

$('body').on('click', '#selector', function() {
    $.ajax({
        url,
        data: data,
            type: "POST",
            dataType: "json",
            success: function(cbdata) {
                update_table(cbdata);
            }
    });
});

上述update_table(cbdata)函数会将出生日期插入#date_of_birth字段。但是这不能触发change event到该输入字段。即使我在ajax调用之后添加$("#date_of_birth").change(),它也无法更改下表的输入字段的日期。

如何在ajax调用后触发更改事件,以便jquery可以自动更改下表的输入字段的日期?

2 个答案:

答案 0 :(得分:0)

触发事件的一种方法是使用jquery触发器函数。

loopback-explorer

答案 1 :(得分:0)

function changeDate(){
       $.ajax({
            url,
            data: data,
                type: "POST",
                dataType: "json",
                success: function(cbdata) {
                    update_table(cbdata);
                }
        });
}
$('#selector').on('click', changeDate);

因此,您可以在需要时调用 changeData()