Android-Phonegap-Jquery Mobile:表单提交第二次不起作用

时间:2012-03-28 08:03:47

标签: android forms jquery-mobile cordova form-submit

我正在使用Phonegap和JQM开发移动Web应用程序。我有带有搜索输入的表单的页面提交给自己,并假设从服务器使用AJAX查询获取数据。 我输入一个文本然后点击手机上的输入,表单提交事件处理程序执行,但每当我按下手机键盘输入时它都不会执行。我尝试在pagainit中添加事件处理程序,pagecreate但没有帮助,所以添加脚本来页面本身,但它的行为相同。什么是向表单添加处理程序的正确方法。

<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 个答案:

答案 0 :(得分:2)

表单中没有第二条警告消息的原因仅仅是因为您第一次单击#submit按钮后看到的表单不是同一种形式。它看起来一样,它有相同的标记,但那是因为jQuery mobile将表单提交到你所在的同一地址并显示结果。

您可以选择两种方式

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

向表单添加data-ajax =“false”后的行为导致jQuery mobile以常规方式提交表单,因此页面实际上会重新加载,并且#submit按钮的单击处理程序每​​次都有效。

2)只需将type =“submit”更改为type =“button” 正常按钮可以正常工作:)

答案 1 :(得分:0)

试试这个:

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