2012-04-05 3 views
1
$(function() { 
    $(".preview").click(function() { 
     $('#image').wrap('<form action="/index/upload.php" method="post" enctype="multipart/form-data" id="imageform" target="imageupload" />'); 
     $('#imageform').submit(); 
     $('#image').unwrap(); 
     var image = $('#imageupload').filename; 
     return false; 
    }); 
}); 

<iframe style="display: none;" name="imageupload" id="imageupload"></iframe> 
<input type="file" id="image" name="image"> 
<input type="button" value="Preview" class="preview"> 

위의 코드에서 이미지가 서버에 제출 된 후 업로드 된 이미지의 파일 이름을 포함하는 검색을 위해 iframe에 변수를 만듭니다. 내가 가진 문제는 이미지가 업로드 될 때 양식이 제출 될 때 jQuery의 .submit() 함수에서 파일 이름을 가져올 때 파일 이름을 얻으려고 시도 할 때 파일 이름을 얻지 못하는 것입니다. 누구든지이 문제를 해결할 수있는 방법을 알고 있습니까?양식을 제출 한 후 iframe에서 변수를 가져 옵니까?

+0

실제 코드입니까? 이미지의 입력이 iframe 외부가 아닌 것 같습니다. 실제가 아닌 문제를 해결하는 데 시간을 낭비하지 않도록 실제 코드를 게시하십시오. :) – jmort253

+0

그건 내 진짜 코드, 이미지 처리를 위해 iframe에 제출되고있다. iframe은 서버에 파일을 저장하고 파일 이름을 포함하는 iframe에 변수를 만듭니다. iframe에서 파일 이름을 가져와야합니다. – Renari

+0

대상 속성에서 iframe을 타겟팅합니까? 나는 "제목"에 전달 된 이름이 새 창 제목으로 사용되며 클릭 된 새 링크가 해당 대상을 대체한다는 것을 오늘 읽고있었습니다. iframe을 타겟팅하는 것에 대해서는 언급하지 않았습니다. 아마 내가 알지 못하는 것을 알고있을 것입니다. 그러나 만약에 대비하여 두 번 확인해야합니다 :) 행운을 빌어 요! – jmort253

답변

1

iframe에 자체적으로 onload 이벤트가있는 것을 발견 했으므로 iframe에 제출 한 후이 이벤트를 트리거 할 수 있었고 코드를 업로드 한 후 원하는대로 코드를 계속 사용할 수있었습니다.

$(function() { 
    $(".preview").click(function() { 
     $('#image').wrap('<form action="/index/upload.php" method="post" enctype="multipart/form-data" id="imageform" target="imageupload" />'); 
     $('#imageupload').attr('onload', 'preview()'); 
     $('#imageform').submit(); 
     $('#image').unwrap(); 
     return false; 
    }); 
}); 
function preview() { 
    var image = $('#imageupload').contents().find('#filename').html(); 
} 


<iframe style="display: none;" onload="" name="imageupload" id="imageupload"></iframe> 
<input type="file" id="image" name="image"> 
<input type="button" value="Preview" class="preview"> 
+0

+1 - 자신 만의 질문을 해결하는 좋은 직장! 답변의 왼쪽에있는 확인란을 클릭하여 허용/우수 답변으로 표시 할 수 있습니다. 이 같은 문제가있는 다른 사람들에게 참조로 나타납니다. :) – jmort253

+1

나는 100 개 미만의 평판을 가지고 있기 때문에 24 시간 동안 자신의 게시물을 답으로 표시 할 수는 없습니다. – Renari

+0

아, 맞아. 그것을 잊어 버렸습니다. 글쎄, 당신이 갈 수있는 몇 가지 질문을 찾아서 100 문턱을 넘을 수있는 시간. :) – jmort253

관련 문제