我正在使用jquery mobile 1.0 alpha 4.1来构建登录表单。
我从第一次加载时,登录表单提交正常: http://m.myapp.local/
表单操作如下:
<form action="http://m.myapp.local/default/login" method="post">
这在第一次登录尝试时效果很好,但是当登录失败时,我们返回到以下URL(这是jquery mobile这样做): http://m.myapp.local/#default/login
现在,当我再次尝试登录/再次提交表单时,没有任何反应,我可以调试以找到错误。它说:
Javascript console: Uncaught TypeError: Cannot call method '_trigger' of undefined
当我进一步调试时,我看到jquery mobile正在尝试提交到以下url: http://m.myapp.local/default/logindefault/login 代替 http://m.myapp.local/default/login
当然,该url不存在导致错误。问题是,我怎样才能以这种方式表现出jq mobile?
完整格式:
<div data-role="content" data-theme="c">
<form action="http://m.myapp.local/default/login" method="post">
<div data-role="fieldcontain" class="center">
<input placeholder="Shop Name" id="login_sitename" type="text" value="" name="sitename" />
<input placeholder="Email" id="login_username" type="text" value="" name="username" />
<input placeholder="Password" id="login_password" type="password" name="password" />
</div>
<button type="submit" data-theme="b">Log in</button>
</form>
</div>
感谢您的帮助和建议!
更新: 我注意到的一个字符串是当我从url中删除hash标签并再次提交表单时,一切正常,所以它肯定与此有关。
但是,当我删除散列标签时,它也会停止使用转换,后退按钮也消失了,jquery移动“加载”对话框也消失了......
更新2: 好像这是一个jquery bug。当使用alpha 2时,它可以工作......
答案 0 :(得分:1)
您可以尝试使用AJAX来进行表单发布。我在我的网站上遇到了同样的问题:
http://jquerymobile.com/demos/1.0a4.1/#docs/api/globalconfig.html http://jquerymobile.com/demos/1.0a4.1/#docs/forms/forms-sample.html
您可以在提交链接中尝试此操作: 数据AJAX = “假”
答案 1 :(得分:1)
尝试使用“%23”(不带引号)代替#符号。因此,如果URL读取
http://jquerymobile.com/demos/1.0a4.1/#docs/forms/forms-sample.html
将其替换为
http://jquerymobile.com/demos/1.0a4.1/%23docs/forms/forms-sample.html
希望这有帮助!