2012-03-28 18 views
0

Ich entwickle mobile Webanwendung mit Phonegap und JQM. Ich habe Seite mit Formular mit Sucheingabe, die sich selbst übermittelt und annimmt, dass Daten von der Verwendung der AJAX-Abfrage vom Server abgerufen werden. Ich gebe einen Text und drücken Sie die Eingabetaste am Telefon, Formular senden Ereignishandler ausgeführt, aber es wird nicht ausgeführt, nachdem ich auf der Tastatur eingeben. Ich habe versucht, Event-Handler in Pagainit, pagecreate hinzuzufügen, aber nicht geholfen, so Skript hinzugefügt, um sich selbst, aber es ist das gleiche Verhalten. Was ist der richtige Weg, einen Handler zum Formular hinzuzufügen?Android-Phonegap-Jquery Mobile: Formular senden funktioniert nicht 2. Mal

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

Antwort

2

Der Grund, warum gibt es keine zweite Warnmeldung in dem Formular einfach ist, weil das Formular, das Sie sehen, nachdem #submit Taste zum ersten Mal klicken nicht die gleiche Form . Es sieht genauso aus, es hat das gleiche Markup, aber das liegt daran, dass jQuery mobile das Formular an dieselbe Adresse sendet und das Ergebnis anzeigt.

Es gibt zwei Möglichkeiten, was Sie tun können,

1) nach <form id="callAjaxForm" data-ajax="false">

Das Verhalten Verwenden Sie Hinzufügen von Daten-Ajax = "false" oder auf die Ergebnisse in jQuery Mobile die Form regelmäßiger Weise zu unterbreiten, so Die Seite wird tatsächlich neu geladen und der Click-Handler für die Schaltfläche #submit funktioniert jedes Mal.

2) Nur die Art ändern = „submit“ = „Taste“ eingeben und die normale Taste für die Antwort fein :)

+0

Dank funktioniert, aber wenn neue Form dann jedes Mal erstellt bekommen .live gearbeitet haben sollte . Aber ich habe festgestellt, dass der folgende Code ohne .die den Submit-Handler mehrmals ausführen würde ('# index'). Live ('paginit', function (event) { \t $ ('# indexsearchform'). Live ('submit', function() {. \t $ ('# indexsearchform') sterben(); \t \t alert ("Hallo"); \t}); }); . Mit .die bekomme ich das Verhalten, das ich will. Es sieht so aus, als müsste für jeden .lve der .die Funktionsaufruf sein. – user951910

0

Try this:

<form id="indexsearchform" method="post" onsubmit="functionToBeExecutedOnSubmit();" > 
Verwandte Themen