0

我正在使用 jquery smartupdater 用 json 数据更新 i div。我必须在请求中发送隐藏字段的值并根据响应更新相同隐藏字段的值。

问题在于,当我收到响应时,字段值在 dom 中更新,但更新后的值不会再次附加到 url。

这是我的代码:---

<div id="device_activities"  class="hl_synopsis">
    <p id="no_update">;No Updates Available </p>;
</div>
<%= hidden_field_tag 'last_act', ''%>

和javascript代码:--

$(document).ready(function(){
    var temp = $('#last_act_id').val();
    console.log("temp-->"+temp);
    $("#device_activities").smartupdater({
        url : '<%= get_activity_path%>',
        data: {"last_act_id":$("#last_act").val()},
        dataType : 'json',
        minTimeout : 6000
    }, function(data) {
            $('#last_act').val(data[data.length-1].id);
            console.log(data[data.length-1].id);
            console.log($('#last_act').val());
        $.each(data, function() {
            $('div#device_activities p#no_update').remove();
            $.each(this, function(key, value) {
                $("div#device_activities").append("<p id='activity'><strong>" + key + " :</strong> " + value + "</p>");
            });
        });
    });
});
4

1 回答 1

0

谢谢回复。我遇到了问题,它是 smartupdator 请求格式。智能更新器重复发送第一次配置的请求。为了发送具有更新字段值的请求,您必须更新 smartupdator url。

我通过添加:--

$(文档).ready(函数(){

$("#device_activities").smartupdater({
    url : '<%= get_activity_path%>',
    dataType : 'json',
    minTimeout : 10000
}, function(data) {
        <!-- Get last activity id from json and update smartupdater url using it, after that delet id element from json data -->
        $("#device_activities").smartupdater("alterUrl", '<%= get_activity_path%>', {"last_act_id": data[data.length-1].id});   

        $.each(data, function() {
            if(data[0] != undefined && $('div#device_activities p#no_update')){
                $('div#device_activities p#no_update').remove();
            }
            $.each(this, function(key, value) {<!-- update activity div from json -->
                $("div#device_activities").append("<p id='activity'><strong>" + key + " :</strong> " + value + "</p>");
            });
        });
});

});

于 2012-04-23T11:39:32.493 回答