Hashchange html submit
Hashchange html submit
我的脚本有问题。如果我要用空格键输入一些东西,例如:google map它会在输入框中改变:google+map我不喜欢的东西。也……当我再次提交时,它会变得更糟
<form name="input" action="" method="get">
Search: <input type="text" name="search">
<input type="submit" value="Submit">
<div id="result"></div>
</form>
,
$('form').submit(function() {
var form_data = ($(this).serialize());
window.location.hash = form_data.replace('=','/');
return false;
});
$(window).on('hashchange', function () {
var values = window.location.hash.slice(1).split('/');
$("[name=" + values[0] + "]").val(values[1]);
});
var values = window.location.hash.slice(1).split('/');
$("[name=" + values[0] + "]").val(values[1]);
您需要使用decodeuriccomponent从散列中转义该值:
$('form').submit(function() {
var form_data = ($(this).serialize());
window.location.hash = form_data.replace('=','/');
return false;
});
$(window).on('hashchange', updateVal);
updateVal();
function updateVal() {
var values = window.location.hash.slice(1).split('/');
$("[name=" + values[0] + "]").val(decodeURIComponent(values[1]));
}
在这种情况下,不应该使用<form name="input" action="" method="get">
的FORM方法'GET'。根据W3推荐此处
1.3 HTTP GET或POST快速选择清单
如果:交互更像一个问题(即,它是一个问题)使用GET安全操作(如查询、读取操作或查找)。使用POST如果:交互更像一个顺序,或者交互改变以用户可以感知的方式显示资源的状态(例如:(对服务的订阅),或者对用户负责相互作用的结果。
在GET中,数据以URI发送,URI中没有spaces
,因此出现了问题。
但是,如果您需要为此使用GET请求,则使用decodeuriccomponent to decodeURIComponent(values[1])
来转义值
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何设置html元素填充的动画
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何编写HTML输入的JS内联
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量
- 如何使Javascript动态html表及其上的事件
- 如何获得<html:submit>按钮是在javascript中单击的
- jQuery .submit() 不适用于 javascript 生成的 html 表单
- 如何识别源自JS脚本的http请求与HTML
- 用javascript创建的HTML表单不会响应.submit
- struts 1.1 - 如何通过 JS 设置 html:submit 的属性
- 通过jquery-Submit()方法提交的HTML
- 如何在点击Submit按钮时生成警报,只有当html表单满时使用Javascript
- Angularjs - form ng-submit不能与动态生成的form html一起工作
- Hashchange html submit
- 使用JS在Submit上验证HTML表单
- 在submit-Mailchimp嵌入表单中将JS变量传递给HTML表单