我正在使用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>
答案 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();" >