我决定使用jQuery Mobile框架来制作一个Wordpress移动主题。
现在我遇到了一个问题,就是在带有哈希标签的URL中提交表单并进行验证和ajax提交时,无法正常工作。
例如:website.com/contact/ <- 正常工作;website.com/#/contact/ <- 不能正常工作。
我知道可以使用rel="external"标签来消除URL中的#。但是,我有一个使用自定义插件呈现注册表单的博客文章,我将无法使用rel="external"标签。我想我可能需要为所有链接使用它,但那样会消除平滑的过渡效果。
我有哪些选项尝试使其正常工作?我正在尝试将.submit绑定到表单上,进行一些验证,然后ajax提交它。
更新--
<form id="myform" action="myfile.php" method="post">
<input type="text" id="mytext" name="mytext" />
<input type="submit" id="myform_submit" value="Submit">
</form>
我的脚本:
jQuery(document).ready(function() {
jQuery("#contact_submit").submit(function(){
alert('WTF');
});
});
将其更改为:
<form id="myform" action="myfile.php" method="post">
<input type="text" id="mytext" name="mytext" />
<input type="button" id="myform_submit" value="Submit">
</form>
以及我的脚本:
jQuery(document).ready(function() {
jQuery("#contact_submit").click(function(){
alert('WTF');
});
});
两者都不能处理 URL 中的 # 符号。
我在 jquery.mobile.js 文件之前添加了以下内容:
<script type="text/javascript">
jQuery(document).bind(
"mobileinit", function(){
jQuery.extend( jQuery.mobile, { ajaxFormsEnabled: false });
});
</script>
仍然无法实现。
(顺便说一下,使用jQuery而不是$是因为WordPress)
--另一个更新。
由于我正在使用WordPress,一些功能表现得很奇怪。比如is_home()。无论我在哪个“页面”,该函数都返回true。我认为这与每个页面的ajax调用有关。
pageinit
而不是pagecreate
(http://jquerymobile.com/demos/1.1.1/docs/api/events.html)。 - Charlie Gorichanaz