jQuery로 양식에 submit 함수를 설정하고 나중에 함수를 다른 것으로 다시 설정합니다. 원래 함수가 다시 호출 된 다음 새 함수 만 호출되었을 때 새 함수가 호출됩니다.양식 제출 기능을 동적으로 변경하면 이전 함수가 한 번 호출 된 후 새 함수가 호출됩니다.
나는 AJAX로 요청을 보내고 있습니다. 첫 번째 것은 서버의 값을 확인한 다음 계속할 것인지 묻습니다. 제출을 다시 클릭하면 변경된 함수 만 호출해야하지만 어떤 이유로 든 단일 클릭으로 동시에 호출됩니다.
여기 무슨 일입니까? jQuery가 양식 제출의 두 번째 기능 설정을 지연시킬 수 있습니까?
편집 : 다음은 처리기를 변경하는 메소드입니다.
_confirmationCB: function(json, status) {
this._setMessage(json['message']);
if(json['valid']) {
$('form#form').unbind('submit', this._confirmationRequest);
$('form#form').submit(this._deleteRequest.bindObject(this));
}
},
_deleteCB: function(json, status) {
this._setMessage(json["message"]);
if(json['valid']) {
this._setMessage(json["message"]);
$('td input[type=checkbox]').each(function() {
if(this.checked) {
$(this).parent().parent().remove();
}
});
}
$('form#form').unbind('submit', this._deleteRequest);
$('form#form').submit(this._confirmationRequest.bindObject(this));
this._setMessage(true);
},
클래스가 다소 길어서 여기에 모든 코드가 표시되지 않습니다.
편집 : 처리기의 바인딩을 해제하려고 시도했지만 문제가 발생하지 않았습니다.
Function.prototype.bindObject = function(object) {
var method = this;
return function() {
method.apply(object, arguments);
};
}
이 나는 데 문제 정말 관련이없는,하지만 누군가가 그것을 질문 :
이것은 bindObject 기능입니다. jQuery $ .ajax에 의해 호출 될 때 클래스 'this'객체를 메소드에 바인딩하는 데 사용됩니다.
아마도 코드를 표시해야 할 것입니다. –