JQuery/Ajax 업데이트가 있습니다. 모든 주요 브라우저에서 올바르게 업데이트되지만 모든 IE 버전에서는 오류 응답을 처리하지 못합니다. 모든 브라우저가 제대로 업데이트를 게시으로 나는, 문제는 여기에 생각하지 않습니다, 다시Jquery/AJAX 응답 - FF/Safari에서 작동하지만 IE parseFloat (html) 문제가 아닙니까?
$('.ajax_multi_submit').click(function (event) {
// if javascript is enabled, stop default post
event.preventDefault();
// get the id assigned to this form. This id will
// be added to every id to used in processing
var element = $(this);
var Id = element.attr("id");
var formUrl = $('#ajax_multi_form' + Id).attr('action');
$.ajax({
url: formUrl,
type: "POST",
dataType: "html",
data: $('#ajax_multi_form' + Id).serialize(),
beforeSend: function() {
showAjaxMultiBusy(Id);
},
complete: function() {},
success: function (html) {
processAjaxMultiForm(html, Id);
}
});
});
:
는 Heres는 아약스 코드를 제출합니다. 이 코드 결과 처리 그러나 :function processAjaxMultiForm(html, Id) {
$('#ajax_errors' + Id).hide('slow');
window.setTimeout(function() {
$('#ajax_busy' + Id).hide('slow');
if (parseFloat(html)) {
$('#ajax_message' + Id).html('Record Saved.').show('normal');
$('#ajax_message' + Id).hide('slow');
} else {
$('#ajax_errors' + Id).html(html).show('slow');
}
}, 1500);
}
오류 문자열 정수 대신 반환 (에서는 parseFloat (HTML) = "일부 문자열 ..."), FF 및 사파리 올바르게의 에러 표시 "else"조건.
IE는 반환 값 (1 = 성공, 문자열 = 오류)에 관계없이 항상 "if"조건을 표시합니다.
나는 천재가 있다고 가정하고 즉시 문제를 보게 될 것입니까?
EDIT ------- 여기 좀 더 자세한 정보가 있습니다. html 변수를 출력하기 위해 스크립트에 콘솔 로그를 추가했습니다. 오류가 발생하면 올바른 문자열이 표시되고 성공하면 "1"이 표시됩니다. 나는 아래의 제안에 따라 코드를 업데이트했습니다
function processAjaxMultiForm(html, Id) {
$('#ajax_errors' + Id).hide('slow');
window.setTimeout(function() {
$('#ajax_busy' + Id).hide('slow');
console.log("html is: " + html);
if (isNaN(html)) {
$('#ajax_errors' + Id).html(html).show('slow');
} else {
$('#ajax_message' + Id).html('Record Saved.').show('normal');
$('#ajax_message' + Id).hide('slow');
}
}, 1500);
}
이전과 FF 사파리에서 예상대로 작동하지만 IE는 "성공"
감사합니다 사파리와 FF에서 잘 작동합니다 (IE8에서는 작동하지 않습니다.) 6 또는 7을 아직 시도하지 않았습니다. IE는 관계없이 "레코드를 저장했습니다"를 보여줍니다. 성공 여부. if (isNaN (html)) { $ ('# ajax_errors'+ Id) .html (html) .show ('slow'); \t \t \t \t \t \t} 다른 { \t \t $ ('#의 ajax_message'+ Id)을 .html 중에서 ('기록 저장.') 쇼 ('정상.'); \t $ ('# ajax_message'+ Id) .hide ('slow'); \t \t} – pdxtim
개발자 도구 (도구 -> 개발자 도구)를 사용하여 IE에서 isNaN ("abc") 및 isNaN ("123")을 사용하고 예상 결과를 얻었습니다. (각각 true 및 false) –
도움을 주셔서 감사합니다. 나는 상류에있는 오류를 발견했다. 왜 문자열 대 정수 평가에 영향을 미칠지 모르겠지만 업스트림 변경으로 인해이 문제가 해결되었습니다. 감사합니다. – pdxtim