键盘输入时,如何在Ajax调用URL更改后停止MVC页面刷新

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了键盘输入时,如何在Ajax调用URL更改后停止MVC页面刷新相关的知识,希望对你有一定的参考价值。

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

如何在输入文本框值并按键盘Enter按钮时停止页面刷新。

这是我的html和Jquery的代码我想在文本框中输入值时停止页面刷新然后按Enter然后我的页面重新设置和页面链接已更改

这是页面链接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>
答案

据我所知,你的问题是表单标签的默认提交行为,当按下Enter键时,提升提交事件。

要阻止该事件,您可以使用以下代码

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

其中jQuery("form.app-search")是一个jquery选择器,用于查找具有类app-search的表单标签,即使你可以编写一个非常具体的Id(#selector)。

试试FIDDLE

希望这对你有用。

以上是关于键盘输入时,如何在Ajax调用URL更改后停止MVC页面刷新的主要内容,如果未能解决你的问题,请参考以下文章

在 Internet Explorer 9 中更改域名后,Ajax 停止工作

Ajax 调用后 url 中的 data-id 没有改变

Facebook 中的 URL 更改 ajax 调用

如何在jquery中停止Ajax调用[重复]

如果没有得到响应,如何在 30 秒后停止 ajax 调用? [复制]

ajax调用后如何停止刷新页面?