2011-09-20 4 views
1

Jquery Mobile에 대해 배우고 있습니다. 그러나 jq mobile 대화 상자 옵션을 사용하여 양식 제출을 확인하는 데 어려움을 겪고 있습니다. runSearch() 함수를 직접 srch.asp에서 실행하면 대화 상자에서 runSearch() 함수를 실행하려고 할 때 페이지로드 오류가 발생합니다. 나는 jqmobile을 매일 빌드하고있다. 여기 Jquery Mobile에서 대화 상자로 양식 제출 확인

는 지금까지이 작업은 다음과 같습니다

srch.asp :

<!DOCTYPE html> 
<html> 
<head> 
<title>Filter page</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/> 
    <link href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css"  rel="stylesheet" type="text/css" /> 
    <script src="http://code.jquery.com/jquery-1.6.2.min.js"></script> 
    <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script> 
</head> 
<body > 
<div data-role="page" data-add-back-btn="true" id="main"> 
    <div data-role="header" data-theme="b" data-position="inline">  
    <title>Filter page</title> 
    <script language="JavaScript" type="text/javascript"> 
    var count = 26; 
    function doSearch(){ 
     //var sqlStr = generateSQL(); 
     var sqlStr = 'xxx'; 
     document.getElementById('sqlSrch').value = sqlStr;   
     if (count > 25){ 
      $("#lnkDialog").click(); 
     } 
     else{   
      runSearch(); 
     }    
    } 
    function runSearch(){ 
     $.mobile.changePage("/mobile/famName/results/en", { 
      type: "post", 
      data: $("form#frmSelectors").serialize() 
     });   
    } 
    </script> 
    </div><!-- /header --> 
    <div data-role="content"> 
    <form id='frmSelectors' method="post" action="/mobile/famName/results/en"> 
     <input type="hidden" name="sqlSrch" id="sqlSrch" /> 
     <input type="hidden" name="famID" value="xxx" /> 
     bunch more inputs go here.... 
     <input type="button" value="Search" id='srch' onclick="doSearch()" style="srcButton"/> 
     <a id='lnkDialog' href="#toomany.asp" data-rel="dialog" data-transition="pop"></a> 
    </form> 
    </div><!-- /content -->   
    </div><!-- /page -->  

    </body> 
    </html> 

toomany.asp :

당신의 srch.asp에서
<!DOCTYPE html> 
<html> 
<head> 
<title>Warning</title> 
    <link href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" rel="stylesheet" type="text/css" /> 
    <script src="http://code.jquery.com/jquery-1.6.2.min.js"></script> 
    <script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"></script> 
</head> 
<body> 
<div data-role="dialog" id="dialog"> 
    <div data-role="header"> 
    <h1>Warning</h1> 
    </div>  
    <div data-role="content" data-theme="b"> 
    <div id="text">Error Message</div> 
    <a href="#" data-role="button" data-rel="back" data-transition="slidedown" data-theme="b">Yes</a> 
    <a href="#" onclick="runSearch();" data-role="button" data-rel="dialog" data-transition="slidedown" data-theme="c">No</a> 
    </div> 
</div> 
</body> 
</html> 
+1

return false를 추가하려고합니다. runSearch() 후; –

+0

jquerymobile을 사용한다면 jquery를 더 많이 사용하는 것이 좋습니다. 그 위대하고 거기에 UR 코드의 일부 장소가 어디에 편리하게 올 것이다! – Evan

+1

반환 추가 false; runSearch(); toomany.asp에서 호출하면이 문제가 해결되지 않았고 runSearch 함수에 false가 추가되었습니다. –

답변

0

, 링크를 제공합니다

<a id='lnkDialog' href="#toomany.asp" data-rel="dialog" data-transition="pop"></a> 

# toomany.asp에 대한 링크 같은 페이지에서 앵커에 링크 있지만, 자세한 내용은 여기를 참조 연결하는 실제 페이지 것이다 : 당신은이 링크를 사용한다 http://jquerymobile.com/demos/1.0b3/docs/pages/page-links.html

대신 대화로 다른 페이지로 연결하기 :

<a id='lnkDialog' href="toomany.asp" data-rel="dialog" data-transition="pop"></a> 
0

복사 된 양식 @Senad Meškin의 코멘트 :

return false를 추가하려고합니다. runSearch() 후;

이렇게하면 JQMobile 기반 웹 응용 프로그램에서 동일한 오류가 해결되었습니다. 양식이 제출 된 후 '오류로드 페이지'오류가 발생했습니다. 제출시 실행중인 함수에 return false; 행을 추가하기 만하면 오류가 해결되었습니다. 이것이 OP를 위해 작동하지 않는 것처럼 보일지라도, Google 등이 여기서 지시 한 다른 사람들은 이것이 도움이 될 수 있습니다.