내가 작업중인 사이트의 편집 도구에 Ben Nadel의 iFrame 업로드 기능을 사용하고 있습니다. 나는 jQuery를 배우고있다. 이 기능은 아름답게 작동합니다. 재사용이 가능한 모달 윈도우의 일부이며 모든 것이 작동합니다. 그러나 호출이 어디서 왔는지 함수에 동적으로 알려서 적절한 양식을 모달 창에로드합니다. 어떻게 함수에 전달할 것인가? 지금은 #uploadform을 받기 위해 하드 코딩되어 있습니다. 기본적으로, 나는jQuery 함수에 요소 ID를 전달하는 방법
$(function(){
var jForm = $("#uploadform");
jForm.submit(
function(objEvent){
var jThis = $(this);
var strName = ("uploader" + (new Date()).getTime());
var jFrame = $("<iframe name=\"" + strName + "\" src=\"about:blank\" />");
jFrame.css("display", "none");
jFrame.load(
function(objEvent){
var objUploadBody = window.frames[ strName ].document.getElementsByTagName("body")[ 0 ];
var jBody = $(objUploadBody);
var objData = eval("(" + jBody.html() + ")")
var thumb = ('thumbnails/' + eval(jBody.html()));
$("#header").css("background", "url(" + thumb + ") no-repeat center");
$("#preview").attr("src", thumb);
setTimeout(
function(){
jFrame.remove();
},100);
});
$("body:first").append(jFrame);
jThis
.attr("action", "upload_act_single.cfm")
.attr("method", "post")
.attr("enctype", "multipart/form-data")
.attr("encoding", "multipart/form-data")
.attr("target", strName);
});
});
그래서 본질적으로 내 업로드는 formSubmit 함수로 래핑됩니다. 그렇다면 제출 한 부분과 제출하고자하는 다른 데이터와 같은 다른 vars를 정의 할 수도 있습니다. onSubmit과 반대로 내 파일 입력 필드에서 onChange를 수행하면 자동 제출이 가능합니까? – Ofeargall
정확히, 표준 HTML 양식 요소 내에서 메소드와 조치를 정의하고 this.action/this.method를 통해 기본 javascript로 호출 할 수 있습니다. 따라서 하나의 jQuery 함수 만 필요합니다. 예, 대신 onChange 트리거를 사용하여 제출할 데이터에 val()을 사용하면됩니다. dojo 툴킷, 특히 dojo.xhrGet/dojo.xhrPost (또는 다중 부분 양식 데이터의 경우 dojo.io.iframe.send) 메소드를 참조해야합니다. – lintal