繁体   English   中英

Ajax Post Call在KeyUp上不起作用

[英]Ajax Post Call Not Working for On KeyUp

我一直在设法解决这个问题,但是没有运气。 我正在做ajax发布以获取课程列表。 有两种获取列表的方法。 用户可以单击搜索按钮或按Enter。 单击搜索按钮可以正常工作并返回课程列表。 但是,按Enter键不起作用。 它总是返回错误“ jqXHR.status = 0-未连接”。

这是两个都都调用PerformSearch()的事件。

此keyup事件不起作用。

$('#searchFor').on('keyup', function (event) {
    event.preventDefault();
    if (event.which === 13) {
        // $('#SearchCourses').click();
        PerformSearch();
    }
})

点击事件可以正常工作。

$('#SearchCourses').on('click', function (event) {
    event.preventDefault();
    PerformSearch();
})


   var PerformSearch = function () {
        var searchValue = $('#SearchCourses').val();
        var searchType = $('#searchFor').val();
        var courseObj = {};
        var Course = {};
        Course.searchValue = searchValue;
        Course.searchType = searchType;

        courseObj.data = JSON.stringify({ "courseObj": Course });
        courseObj.contentType = 'application/json';
        courseObj.method = 'post';
        courseObj.url = '/Home/GetCourses';
        courseObj.dataType = 'html';
        PostAPI(courseObj, DisplayCourses); //This is just doing the post nothing interested in the PostAPI.
    };

  var DisplayCourses = function (result) {
        if (!result.Error) {
            $('#CourseList').html(result.data);
        }
    }

//返回课程列表的服务器端代码。

 public ActionResult GetCourses(Course courseObj)
  {
    .
    .
    .
    return PartialView("Courses", courses);
 }

该事件将提交整个页面,而不仅仅是课程对象。

试试吧:

$('#searchFor').bind('keypress', function (e) {
                    var code = e.keyCode || e.which;
                    if (code == 13) { //Enter keycode
                        //Do something
                        PerformSearch();
                    }
                });

您需要停止提交表单

if (event.which === 13) {
   event.preventDefault();
   PerformSearch();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM