Ich habe versucht, dieses Problem ohne Glück herauszufinden. Ich mache eine Ajax-Post, um eine Liste von Kursen zu bekommen. Es gibt zwei Möglichkeiten, die Liste zu erhalten. Der Benutzer kann auf eine Suchschaltfläche klicken oder die Eingabetaste drücken. Klicken auf den Suchknopf funktioniert und gibt die Liste der Kurse in Ordnung zurück; Drücken der Eingabetaste funktioniert jedoch nicht. Es gibt immer einen Fehler "jqXHR.status = 0 - nicht verbunden."Ajax Post Call funktioniert nicht auf KeyUp
Dies sind die beiden Ereignisse, die PerformSearch() aufrufen.
Dieses Keyup-Ereignis funktioniert nicht.
$('#searchFor').on('keyup', function (event) {
event.preventDefault();
if (event.which === 13) {
// $('#SearchCourses').click();
PerformSearch();
}
})
Das Click-Ereignis funktioniert gut.
$('#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);
}
}
// Die Server-Seite Code, der die Liste der Kurse zurück.
public ActionResult GetCourses(Course courseObj)
{
.
.
.
return PartialView("Courses", courses);
}
Die Veranstaltung einreicht, die gesamte Seite, anstatt nur den Kurs-Objekt.
Jede Probe Geige das Formular Vorlage zu stoppen? – Vatsal
Wenn Sie das in einem Formular festhalten und stattdessen das Ereignis "submit" verwenden, ersparen Sie sich viel Kummer. Ansonsten scheint das Problem nicht der gepostete Code zu sein, sie rufen beide die gleiche Funktion auf, und diese Funktion wird nicht gepostet, so dass wir keine Ahnung haben, was sie tut. – adeneo
Ich habe ein anderes Eingabefeld mit dem gleichen Namen und einer anderen ID hinzugefügt. Dann beginnt das Ereignis für das ursprüngliche Textfeld zu arbeiten. Im Moment ergibt das keinen Sinn für mich. –