2014-11-13 4 views
0

jquery를 사용하여 페이지의 모든 양식을 제출하는 웹 앱이 있습니다. 코드는 다음과 같다 :jQuery. 각 루프가 Chrome에서 작동하지 않습니다.

 $('form').each(function() 
     { 
      $(this).submit(); 
     }); 

이것은 IE와 파이어 폭스에서 잘 작동하지만, 크롬과 사파리에는 완전히 나머지를 무시하고, 페이지의 첫 번째 양식을 제출한다.

응용 프로그램은 asp.net mvc이고 양식이 내 컨트롤러의 HttpPost 작업에 게시됩니다.

누구나 아이디어가 있거나 뭔가 잘못 본 것이 있다면 완전히 잘못된 것이므로 알려 주시면 감사하겠습니다.

Thx 좋은 하루 보내세요.

+1

UM, 같은 페이지에 제출하고 있습니까? 그렇다면 IE와 Firefox는 어떻게 작동합니까? 새 창, 아약스 호출, iframe에 제출하고 있습니까? – epascarello

+0

그리고 브라우저에서 어떤 것이 작동한다면'.each() '가 전혀 필요하지 않습니다. 그냥'$ ('form'). submit()'하고 모든 양식을 제출해야합니다! – PeterKA

답변

1

양식을 제출하는 것은 일반적으로 양식의 데이터를 action 속성 (inputtextarea과 같은 요소)으로 지정된 URL로 업로드하는 HTTP POST 요청을 수행합니다.

확실히 말할 수있는 코드가 충분하지 않지만 첫 번째 양식이 제출되면 자바 스크립트 루프가 끝나고 후속 양식을 제출하지 않는다는 것이 문제라는 것 같습니다.

AJAX를 사용하거나 각 양식에 IFRAME을 사용하거나 모든 필드를 동일한 단일 그룹으로 묶어야합니다 (FORM).

이러한 여러 가지 형식을 나타내는 전체 마크 업 (HTML)을 게시하면보다 도움이됩니다.

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 양식은 자바 스크립트로 작성되며 게시 할 양식 수는 사용자에 따라 다릅니다 (사용자는 필요한만큼 양식을 추가 할 수 있음). 양식의 제출 버튼이 숨겨져 있고 내가 게시 한 .each 루프를 호출하는 '모두 제출'버튼이 있습니다. 내 양식이 컨트롤러의 httppost 작업에 게시되도록 내 앱이 ASP.NET MVC에 있습니다. Chrome에서 문제가 있다고 말한 것처럼 jquery 대신 javascript에서 다른 루프를 사용하려고합니다. – Elound

관련 문제