2011-09-15 5 views
19

로그인 양식 제출을 방지하여 서버를 쿼리하고 사용자 이름과 비밀번호를 확인한 다음 홈페이지. 내가 경험의 jQuery 프로그래머 해요하지만이로 실행 적이없는event.preventDefault() jQuery Mobile .live() 이벤트에서 양식 제출을 막지 못함

$("#login-form").live("submit", function(event) { 
     event.preventDefault(); 
     $.mobile.changePage("main.html", { 
      transition: "fade" 
     }); 
    }); 

: login.html에서

: app.js에서

 <form id="login-form"> 
      <input type="text" name="login-username" id="login-username" value="" placeholder="Username" /> 
      <input type="password" name="login-password" id="login-password" value="" placeholder="Password" /><br /> 
      <button id="cab-submit" type="submit" data-theme="a" data-inline="true">Log In</button> 
     </form> 

다음은 관련 코드입니다 . changePage()는 작동하지만 불필요한 페이지로드를 유발하는 양식을 제출 한 후에 만 ​​발생합니다.

EDIT : 해결책을 찾았습니다.

양식 제출 자료를 직접 처리하려면 양식에 data-ajax = "false"를 추가해야했습니다. 이것은 잘 동작했다.

새로운 마크 업 :

 <form id="login-form" data-ajax="false"> 
      <input type="text" name="login-username" id="login-username" value="" placeholder="Username" /> 
      <input type="password" name="login-password" id="login-password" value="" placeholder="Password" /><br /> 
      <button id="cab-submit" type="submit" data-theme="a" data-inline="true">Log In</button> 
     </form> 
+0

사용하는 jQuery를 모바일 버전은 무엇? –

+0

jQuery Mobile 1.0b3. –

답변

14

내 질문에 답했습니다. 양식 제출물을 직접 처리하려면 data-ajax = "false"를 양식에 추가해야했습니다. 이것은 잘 동작했다.

새로운 마크 업 :

<form id="login-form" data-ajax="false"> 
     <input type="text" name="login-username" id="login-username" value="" placeholder="Username" /> 
     <input type="password" name="login-password" id="login-password" value="" placeholder="Password" /><br /> 
     <button id="cab-submit" type="submit" data-theme="a" data-inline="true">Log In</button> 
    </form> 
+0

이 질문에 걸림돌이되는 경우 이벤트 처리기 내에서 event.preventDefault()를 설정하면 양식이 아약스가 설정되었는지 여부에 관계없이 양식이 제출되지 않도록해야합니다. jquery mobile 1.3.1을 사용하고 있습니다. – Prusprus

+2

그래야합니다. 그러나 그것은 나를위한 것이 아니며 1.3.1도 사용하고 있습니다. 데이터 추가 후 - ajax = "false"로 작동했습니다. – sp00n

0

이 = "제출"어떻게되는지 ID에 제출 버튼에 ID를 변경해보십시오. jQuery 모바일과 관련하여 알려진 문제 일 수 있습니다.

+0

고마워요. 이미 시도 했었습니다. –

관련 문제