如何在按下键盘Enter键后更改Ajax调用URL后停止MVC页面刷新

时间:2018-07-13 11:14:29

标签: jquery ajax jqgrid

当我在“文本”框中写文本并按Enter时,“我的页面刷新和URL更改”即为“上传页面快照”,您可以在“图像”中看到。 这是我在文本框中输入文本然后在jQgrid中显示数据时的JQgrid代码。

当我输入文本框值并按键盘的Enter键时,如何停止页面刷新。

这是我的HTML AND Jquery代码,当我在文本框中输入值并按Enter键时,我想停止页面刷新,然后我的页面Regresh和页面链接已更改

这是页面链接 http://localhost:11736/Home/Index

jQuery(document).ready(function($) {

  jQuery("#searchAll").change(function() {
    var $grid = $("#searchGrid");

    $grid.jqGrid({
      url: '@Url.Action("Search_All")',
      datatype: 'json',
      postData: {
        mSearch: function() {
          return $("#searchAll").val();
        }
      },
      jsonReader: {
        id: 'MemberShipID'
      },
      colModel: [{
          name: 'MemberShipID',
          index: 'MemberShipID',
          label: 'MemberShip ID',
          width: 20
        },
        {
          name: 'MembershipName',
          index: 'MembershipName',
          label: 'Membership Name',
          width: 30
        },
        {
          name: 'address',
          index: 'address',
          label: 'address',
          width: 50
        },
        {
          name: 'address1',
          index: 'address1',
          label: 'address1',
          width: 50
        },
        {
          name: 'FileID',
          index: 'FileID',
          label: 'File ID',
          width: 20
        },
        {
          name: 'SectorName',
          index: 'SectorName',
          label: 'SectorName',
          width: 20
        },
        {
          name: 'PhaseName',
          index: 'PhaseName',
          label: 'PhaseName',
          width: 20
        },
        {
          name: 'PlotCategory',
          index: 'PlotCategory',
          label: 'PlotCategory',
          width: 20
        },
        {
          name: 'RPersonName',
          index: 'RPersonName',
          label: 'RPersonName',
          width: 20
        },
        {
          name: 'CityName',
          index: 'CityName',
          label: 'City',
          width: 10
        },
        {
          name: 'CountryName',
          index: 'CountryName',
          label: 'Country',
          width: 10
        }
      ],
      additionalProperties: [],
      loadonce: true,
      navOptions: {
        reloadGridOptions: {
          fromServer: true
        }
      },

      formEditing: {

        closeOnEscape: true,
        closeAfterEdit: true,
        savekey: [true, 13],
        reloadGridOptions: {

          fromServer: true
        }
      },
      viewrecords: true,
      height: 300,
      width: 1200,
      rowNum: 100,
      autoheight: true,
      rowList: [10, 20, 30, 50, 100, 500],
      pager: "#jqGridPager",
      rownumbers: true

    });

  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="app-search">
  <input type="text" class="form-control" id="searchAll" placeholder="Search for..."> <a class="srh-btn"><i class="ti-search"></i></a>
</form>

2 个答案:

答案 0 :(得分:0)

据我了解,您的问题是按下Enter键时引发提交事件的表单标签的默认提交行为。

要防止该事件发生,您可以使用以下代码

jQuery(document).ready(function(){
    jQuery("form.app-search").submit(function(e){
        e.preventDefault();
    });
})

jQuery("form.app-search")是一个jquery选择器,它查找具有类app-search的表单标签,即使您可以编写非常特定的ID(#选择器)。

尝试FIDDLE

希望这对您有用。

答案 1 :(得分:0)

$(document).keypress(function(e) 
  { if(e.keyCode === 13) // 13 is ASCII-code for keyboard ENTER key
  { e.preventDefault(); return false; } });