2012-03-28 12 views
0

PhonegapとJQMを使用してモバイルWebアプリケーションを開発しています。私は自分自身に送信し、AJAXクエリをサーバから使用することを想定しているSearch Inputを持つページを持っています。 私はテキストを入力し、電話機でEnterキーを押すと、フォーム提出イベントハンドラが実行されますが、電話キーボードのEnterキーを押すたびに実行されません。私はイベントハンドラをpagainitに追加しようとしましたが、pagecreateしましたが、ページ自体にスクリプトを追加するのには役立たなかったが、同じ振る舞いをする。ハンドラをフォームに追加する正しい方法は何ですか?Android-Phonegap-Jquery Mobile:フォーム提出が2回動作しません

<html> 
<head> 
    <title>MyApp</title> 

    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1">   
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1">   
    <link rel="stylesheet" href="css/jquery.mobile-1.0.1.min.css" /> 
    <script src="js/jquery-1.6.4.min.js"></script> 
    <script src="js/mobileinit.js"></script> 
    <script src="js/ios-orientationchange-fix.min.js"></script> 
    <script src="js/jquery.mobile-1.0.1.min.js"></script> 
    <script type="text/javascript" src="js/phonegap.js"></script> 

</head> 
<body > 

     <div data-role="page" id="index" > 
      <form id="indexsearchform" method="post" > 

      <div data-role="content"> 

       <input type="search" id="txtbusinesssearch" placeholder="Search Business...."/> 

       </div>  

      </form> 
      <script type="text/javascript"><!-- 
       $('#indexsearchform').submit(function(){ 
             alert("hi"); 

       }); 

      --></script> 
     </div> 
</body> 
</html>​ 

答えて

2

を。それは同じように見えますが、マークアップは同じですが、それはjQueryモバイルがフォームを同じアドレスに送信して結果を表示するためです。

2つのオプションがそう、あなたが

1)フォーム通常の方法を提出するjQueryのモバイルでのフォームの結果へのデータのajax =「false」を追加した後<form id="callAjaxForm" data-ajax="false">

動作を使用何ができるかがありますページが実際に再読み込みされ、毎回#submitボタンのクリックハンドラが機能します。

2)ジャスト= =「ボタン」 、通常のボタンは、返信用の罰金:)

+0

おかげで動作しますが、新しいフォームは、その後たびに作成されます場合.liveが働いている必要がありますを入力して「送信」タイプを変更。しかし、私は、.dieのないコードがsubmitハンドラを複数回実行することを発見しました。関数(){ \t $( '#1 indexsearchform')(ダイ); \t \tアラート( "HI"); \t}); })。 。 .dieを使って、私が望む振る舞いを得る。すべての.lveのように、.die関数呼び出しが必要です。 – user951910

0

この試してみてください:あなたが初めて#submit]ボタンをクリックした後に表示形式が同じフォームではありませんので、何秒の警告メッセージは、フォームでもありません理由は単純である

<form id="indexsearchform" method="post" onsubmit="functionToBeExecutedOnSubmit();" > 
関連する問題