我正在学习Jquery Mobile的方法,但我仍然坚持使用jq移动对话框选项确认表单提交。当我尝试从我的对话框启动我的runSearch()函数时,我得到一个“错误加载页面”消息,如果我直接从srch.asp运行runSearch()函数页面加载就好了。我正在研究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>
答案 0 :(得分:0)
在您的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>
答案 1 :(得分:0)
复制形式@SenadMeškin的评论:
尝试添加return false;在runSearch();
之后这解决了我正在开发的基于JQMobile的Web应用程序上的相同错误。表单提交后,出现“错误加载页面”错误。只需将行return false;
添加到正在运行的函数上就可以修复错误。虽然这似乎不适用于OP其他人在这里指导的其他人可能会发现这有用。