Подтвердите отправку формы с помощью диалога в Jquery Mobile - PullRequest
1 голос
/ 21 сентября 2011

Я изучаю Jquery Mobile, но застреваю при подтверждении отправки формы с помощью параметров диалога jq mobile. Когда я пытаюсь запустить функцию runSearch () из моего диалогового окна, я получаю сообщение «Ошибка загрузки страницы», если я запускаю функцию runSearch () непосредственно из srch.asp, страница загружается очень хорошо. Я работаю над ежедневными сборками jqmobile.

Вот что у меня есть:

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:

<!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>

Ответы [ 2 ]

0 голосов
/ 25 января 2012

Скопированная форма @Senad Meškin's comment:

попробуйте добавить return false;после runSearch ();

Это решило ту же ошибку в веб-приложении на основе JQMobile, над которым я работал.После отправки формы произошла ошибка «Ошибка загрузки страницы».Простое добавление строки return false; к функции, которая выполнялась при отправке, исправило ошибку.Хотя это, кажется, не работает для OP, другие, направленные здесь Google и т. Д., Могут найти это полезным.

0 голосов
/ 29 сентября 2011

В вашем srch.asp вы предоставляете ссылку:

  <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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...