【问题标题】:Jquery - Search button always get same data to first click eventJquery - 搜索按钮总是获得相同的数据到第一次点击事件
【发布时间】:2018-10-12 08:42:28
【问题描述】:

我想通过 ajax 调用从远程数据库中获取数据。我的搜索条件是最短日期、最长日期、可选类型,并且我有一个搜索按钮。我的问题是;当我单击搜索按钮时,系统正常工作,但如果我更改搜索条件并再次单击搜索按钮,我将获得第一次单击的结果。这种情况我该怎么办?

非常感谢。

$('#openDialog').dialog({height:400, width:545, autoOpen:false});
$('#objectTypeSelected').selectable();
$('#searchBtnObjects').click(function (evt) {
	searchBtnObjectsClick();
});

function searchBtnObjects() {

    var types = [];
    var begin = $("#minDate").val();
    var end = $("#maxDate").val();

    var selectedTypes = $(".ui-selected");
    var typeString ="";
    for (var i = 0; i < selectedTypes.length; i++) {
        types[i] = $(".ui-selected")[i].id;
        typeString=typeString+$(".ui-selected")[i].id+",";
    }
    if (objectsTable != null) {
        var postData = {
            ajaxRequest:document.helper.getPageName(),
            directAjaxMode:true,
            types:typeString,
            begin:begin,
            end:end}
        objectsTable.jqGrid("setGridParam", {postData:postData});
        objectsTable.trigger('reloadGrid');
    }
    else{
        objectsTable = $('#objectList').jqGrid({
                datatype:'json',
                colModel:[
                    {name:"ID", label:messageDictionary["ID"], editable:false, formatter:cc_formatter, unformat:cc_unformatter, index:"ID"},
                    {name:"DATE", label:messageDictionary["DATE"], editable:false, formatter:'date', formatoptions:{srcformat:'d/m/Y H:i:s', newformat:'d/m/Y H:i:s'}, index:"DATE"}
                ],
                mtype:'POST',
                multiselect:true,
                pager:'#objectsPager',
                postData:{
                    ajaxRequest:document.helper.getPageName(),
                    directAjaxMode:true,
                    types:typeString,
                    begin:begin,
                    end:en},
                url:'search/getObjects',
                jsonReader:{ repeatitems:false, cell:"", id:"id", userdata:"jsonModel", root:"rows" },
                ignoreCase:true,
                height:80,
                autowidth: true,
                shrinkToFit:true,
                sortname:'ID',
                sortorder:"asc",
                loadonce:true,
                rowNum:30,
                rowList:[30, 50, 100],
                rownumbers:true,
                viewrecords:true
            }
        );
	}
}

【问题讨论】:

    标签: javascript ajax spring-mvc jqgrid


    【解决方案1】:

    你遇到的问题是jqGrid设置中的参数

    loadonce: true

    此设置会在第一次创建网格后自动将数据类型设置为本地。

    为了继续向服务器发出请求,您需要删除此设置或将其设置为 false

    loadonce : false;
    

    您可以在我们的new documentation here 中查看有关 jqGrid 参数的更多信息

    【讨论】:

      【解决方案2】:

      您必须在获得如下搜索结果后立即清除字段。

      $("form").trigger("reset");
      

      参考:clearing-my-form-inputs-after-submission

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-03
        • 1970-01-01
        • 2012-12-05
        • 2016-09-13
        • 2015-09-05
        • 1970-01-01
        • 2022-01-19
        相关资源
        最近更新 更多