Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax jqGrid和Firefox自动完成冲突_Ajax_Jquery_Jqgrid - Fatal编程技术网

Ajax jqGrid和Firefox自动完成冲突

Ajax jqGrid和Firefox自动完成冲突,ajax,jquery,jqgrid,Ajax,Jquery,Jqgrid,我有一个jqGrid,如下代码所示: function radio(value, options, rowObject){ var radio = '<input type="radio" value=' + value + ' name="radioid" />'; return radio; } function reloadOnEnter(){ jQuery(':input[name=field1]').keyup(function(e){

我有一个jqGrid,如下代码所示:

function radio(value, options, rowObject){
    var radio = '<input type="radio" value=' + value + ' name="radioid" />';
    return radio;
}

function reloadOnEnter(){
    jQuery(':input[name=field1]').keyup(function(e){
        if(e.keyCode == 13){
            var fieldValue = jQuery(':input[name=field1]').attr('value');
            jQuery(':input[name=field1]').attr('value', fieldValue);
            jQuery("#listTable").jqGrid().trigger("reloadGrid");
        }
    });
}

    jQuery(function(){
    jQuery("#listTable").jqGrid({
    url: '$content.getURI("myURI")' + '?userId=$userId&pageNo=0&locale=' + '$locale',
    datatype: 'json',
    mtype: 'POST',
    colNames:['column1', 'column2', 'column3', 'column4', 'column5'],
    colModel :[
        {name:'name', index:'field', width:'8%', search:false, align:'center', formatter: radio, editable:false, sortable: false, resizable:false},
        {name:'name1', index:'field1', width:'23%', sortable: false, resizable:false},
        {name:'name2', index:'field2', width:'23%', sortable: false, resizable:false},
        {name:'name3', index:'field3', width:'23%', sortable: false, resizable:false},
        {name:'name4', index:'field4', width:'23%', sortable: false, resizable:false}
        ],
    width:'768',
    height: 500,
    pager: '#pagerDiv',
    gridview: true,
    rowNum: $rowNr,
    rowTotal: 500,
    sortorder: 'desc',
    viewrecords: true,
    loadComplete: loadCompleteHandler,
    ignoreCase: true
    });
});

jQuery(function(){
    jQuery("#listTable").jqGrid('filterToolbar',{
                        stringResult: true,
                        searchOnEnter: false });
});

(我使用ApacheVelocity作为模板引擎!这就是为什么我在javascript代码中有像
$variable
这样的变量!)

回答您的主要问题:您应该使用函数而不是
jQuery.attr('value')

代码中的许多其他东西让我感到奇怪或不清楚。我不清楚如何在
loadCompleteHandler
中使用
ReloadOnner
。如果包含相应的代码片段,则If将很好。
url
的值在我看来也很奇怪。您还可以使用
filterToolbar
searchOnEnter:false
选项,但在
reloadenter
中等待“回车”键。在
if(e.keyCode==13)
的主体内部,您将获得
jQuery(':input[name=field1]').attr('value')
,然后将相同的值设置回原位。为什么?


也许您可以在问题的文本中进一步描述您希望用代码归档的内容?

我已经用源代码更新了问题,因此您可以看到loadCompleteHandler方法。URL的值很奇怪,因为我使用Velocity引擎来解析它,因此我使用特殊变量,如“content”变量。我没有设置SearchOneNoter,因为我希望它在没有“Enter”的情况下刷新网格,并且在按下“Enter”时也刷新网格。jQuery.val和jQuery.attr之间有什么区别?@Atticus:您将您的主要问题描述为:“我开始键入“he”,自动完成窗口显示“hello”(因为我以前键入了hello)。我选择“hello”并按enter键,但ajax请求中仍会提交“he”。“您发布的代码没有自动完成功能,因此主要部分未发布,无法使用代码重现您的问题并帮助您。你应该发布更多完整的代码。此外,您当前的代码还有另一个重要缺陷,它使绑定到
keyup
不再是一次。每次按键都会多次调用该函数。感谢您指出此错误。正如我看到的,这是因为网格在重新加载后重新加载,绑定再次发生。我得把这个修好。关于autocomplete,我弄错了正确的词,因为我没有提到jQuery autocomplete,而是提到了Firefox特性,当您单击它时,它会显示先前为字段输入的值的列表。(这个名字叫什么?!?)没有更多的代码可以发布了。这个问题是由我称之为(错误地)自动完成的Firefox功能引起的。你写了关于自动完成的文章。在代码中,您将
field1
绑定到jQuery UI autocomplete的哪个位置?@Oleg:我可能弄错了正确的单词,当我说autocomplete时,我指的是Firefox功能,当您单击它时,它会显示先前为该字段输入的值列表(这个名称是什么?!?)。我没有使用jQuery自动完成功能!
function loadCompleteHandler(){
    reloadOnEnter();
    jQuery("#listTable").jqGrid('setGridHeight', Math.min(500,parseInt(jQuery(".ui-jqgrid-btable").css('height'))));
}