当URL中存在查询字符串时,Jquery表单提交无法工作
Jquery form submit not working when query string is present in URL
测试场景:
- 在文本框中键入"你好",您应该会看到页面中写着"你好"
- 现在单击"测试"链接(它只是一个指向自身的链接,带有查询字符串
&test=1
) - 现在在文本框中键入"世界",你可以看到它不再写在页面中
为什么会发生这种情况?
您可以在.php
页面上测试此页面:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
<form id="search_form" method="post">
<label for="search">Search:</label>
<input type="search" id="search" />
</form>
<script type="text/javascript">
$('#search_form').submit(function (event) {
window.location.href = '<?=$_SERVER['PHP_SELF'].'?s='?>' + $('#search').val();
event.preventDefault();
});
</script>
<br /><br />
<?php $s = filter_input(INPUT_GET, 's'); ?>
Query string: <?=$s?>
<br /><br />
<a href="<?=$_SERVER['PHP_SELF']?>?s=<?=$s?>&test=1">test</a>
</body>
</html>
演示URL:(在问题解决后删除)
由于您使用的是Jquery Mobile,默认情况下所有链接都是通过AJAX执行的。这会混淆你的脚本。我建议在链接中抑制这一点。
<a href="<?=$_SERVER['PHP_SELF']?>?s=<?=$s?>&test=1" data-ajax="false">test</a>
这将允许链接被正常处理,并将在没有AJAX的情况下执行URL。
相关文章:
- AngularJS JQuery Ajax表单提交等效
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- setTimeOut AFTER jQuery表单提交
- jquery表单提交无法使用多个输入(IE和Firefox)
- Jquery表单提交仍在刷新
- 如何在没有表单提交、没有js、没有jquery和没有ajax的情况下将输入的文本框值存储到php变量中
- 如何触发我的 jquery 表单提交
- 表单提交在一段时间循环PHP,jquery
- 在提交之前验证表单,jQuery发布到javaScript,然后提交到确认页面
- 'Alajax' Jquery 简单表单提交.如果表单未经验证,如何防止提交
- 使用jquery进度条重定向到表单提交后的另一个页面
- 表单提交onChange事件;不能使用JQuery函数
- jQuery在表单提交和重定向后发出警报
- Jquery:如何处理"停止/取消”;用户停止表单提交时的事件
- 我想知道如何只激活表单提交,而不获取jquery中ajax url的值
- Jquery、AJAX&PHP,表单提交不起作用
- 在初始表单提交后使用ajax/jQuery自动刷新,然后更改页面标题
- 如果电子邮件输入处于焦点上,则阻止输入按钮表单提交 (jquery)
- 防止hubspot表单提交- jQuery验证
- 如何防止表单提交 JQuery