아약스 요청에 문제가 있으며 간단하게 <input type="submit"/>
입니다.jQuery 라이브가 예상대로 작동하지 않습니다.
다른 뷰 내에서 뷰를로드하는 데 모듈형을 사용합니다. 하나의 뷰에서 다른 뷰로 .load(url)
을 사용하는 jquery를 사용합니다. 그래서 view_1 안에 view_2를로드하고 view_2의 js 스크립트가 view_1 안에 있으면 을 사용하여 view_2에서 xhr 요청을 시작해야하므로, 시도 할 때 한 번에 1 대신에 3 (multiple) xhr at same time
이 실행됩니다. 이유를 모르겠다.
내가 아는 유일한 것은이다 : 그것은 3 여러 XHR을 시작
live('click')
를 사용
- view_1에.
- 보기 1에서
click()
을 사용하면 작동하지 않습니다 (분명히 생각합니다). - 직접 작동 view_2 내부
click()
를 사용 (하지만 난, 난 단지 "부모"에 뷰를 JS를 사용할 수 있습니다 JS 로드 뷰에서 사용할 수 없습니다) 정말하지 않는, 기능은 정말 간단하다
왜 내가이 문제 (나는 또한 아약스 beforeSend에서 제출을 비활성화)이 view_1로드 된 view_2에서 실행되는 코드를 확인하고 클릭 3 XHR을 시작 : | 그게 당신이 기본 동작을 방지하지 않는 한 다음 양식 내부 버튼 제출의 경우
$(document).ready(function(){
$('#save-doc').live('click',function(){
var _title = $('#doc-title').val();
var _doc = $('#doc-doc').val();
update_doc(url_update_doc,{'title':_title,'doc':_doc,'id_doc':_choosed_doc,'id_project':id_project},this);
});
});
function update_doc(_url,_data,_starter){
$.ajax({
type:'POST',
data:_data,
url:_url,
dataType:'json',
beforeSend:function(){
$('.ajax-loading').show();
$(_starter).attr('disabled','disabled');
},
error:function(){
$('.ajax-loading').hide();
$(_starter).removeAttr('disabled');
},
success:function(json){
$('.ajax-loading').hide();
$(_starter).removeAttr('disabled');
if(json.error){
$('#error-title').html(json.error_title);
$('#error-doc').html(json.error_doc);
$.scrollTo('.append-form-edit-doc','fast');
}
if(json.confirm){
$.scrollTo('#top','fast');
$.gritter.add({
title:'Document Saved',
text:json.confirm
});
}
}
});
}
ID가 'save-doc' 인 요소가 여러 개있을 수 있습니다. –
"return false;"를 추가하려고 시도한 적이 있습니까? "클릭"처리기의 끝에? – Pointy
@Shadow Wizard 님이 ID가 아닙니다. :) – sbaaaang