js模拟form提交的一些问题

简介: 当在页面中需要进行post提交时,一般的做法是将控件放入form标签中,加入一个submit按钮进行post方式的提交。 遇到的问题 页面中有两个Tab进行切换,一个tab中需要获取用户输入的值进行post提交到search页面进行搜索操作,另一个tab中是获取用户输入的值进行get方法提交到另一个页面进行查询操作,那么那个按钮就不能使用submit类型的按钮了(后来发现那样也可以实现相应的功能),那么想到的方法就是模拟一个form进行post提交。

当在页面中需要进行post提交时,一般的做法是将控件放入form标签中,加入一个submit按钮进行post方式的提交。

遇到的问题

页面中有两个Tab进行切换,一个tab中需要获取用户输入的值进行post提交到search页面进行搜索操作,另一个tab中是获取用户输入的值进行get方法提交到另一个页面进行查询操作,那么那个按钮就不能使用submit类型的按钮了(后来发现那样也可以实现相应的功能),那么想到的方法就是模拟一个form进行post提交。

解决的方法

在页面中放入下面的模拟form

< form  id ="formSearch"  method ="post"  action ="/search.aspx" >
    
< input  type ="hidden"  id ="hiddenWord"  name ="word"  value =""   />
</ form >

在第一个tab对应的按钮事件中添加如下的js代码

$( " #hiddenWord " ).val($( " #word " ).val());
$( " #formSearch " ).submit();

id为word的控件为用户输入条件的input控件

这样就实现了js的模拟post提交,实际上这样还解决了aspx页面的form中嵌套from标签的问题

编码的问题

当前的页面编码为UTF-8的编码,而search.aspx的编码为GB2312,所以post过去的数据出现了乱码,当然也可以使用js的encodeURIComponent进行编码

实际上在aspx页面的头部page注册时有这样一个属性:ResponseEncoding

加入此属性后aspx页面的头部应该像下面这个样子

<% @ Page Language = " C# "  AutoEventWireup = " true "  EnableViewState = " false "  ResponseEncoding = " GB2312 "   %>

这样就解决了页面编码不一致的问题。

另一个小技巧

在submit按钮post前可以进行自定义函数的检查,即可以阻止掉post的提交过程

在submit的时候执行一些自定义的操作,需要先用preventDefault阻止提交

$( " #id_form " ).submit( function (e) { e.preventDefault(); doSomething(); e.target.submit();})

click的时候就不需要,直接操作就可以

$( " #id_save " ).click( function (e) { doSomething(); })


作者:Parry
出处:http://www.cnblogs.com/parry/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关文章
|
5月前
|
JavaScript 前端开发
JS中的form对象是什么
JS中的form对象是什么
36 0
|
4月前
|
JavaScript 前端开发
Javascript的form表单校验输入框
Javascript的form表单校验输入框
25 0
|
7月前
|
Web App开发 JavaScript 前端开发
体验 Orbeon form PE 版本提供的 JavaScript Embedding API
体验 Orbeon form PE 版本提供的 JavaScript Embedding API
41 0
|
7月前
|
JavaScript 前端开发 API
关于 Orbeon form PE 版本使用 JavaScript Embedding API 的一个例子
关于 Orbeon form PE 版本使用 JavaScript Embedding API 的一个例子
39 0
|
8月前
|
JavaScript 前端开发
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之编辑表单 封装form组件6
前端学习笔记202306学习笔记第五十四天-react.js & material-ui之编辑表单 封装form组件6
31 0
|
9月前
|
数据采集 JavaScript 数据安全/隐私保护
js提交form表单
前段时间将边用边学javascript.pdf书看完了,其中之前最不熟悉的也是这次印象最深刻的就是提交form表单,所以在这里总结一下js提交form表单,以及表单中对应的一些扩展知识O(∩_∩)O~
|
JavaScript 前端开发
odoo 通过Javascript显示或隐藏form自带按钮
odoo 通过Javascript显示或隐藏form自带按钮
101 0
|
JSON JavaScript 前端开发
javascript实现省市区三级联动选择的代码(数据为模拟json数据)
javascript实现省市区三级联动选择的代码(数据为模拟json数据):
409 0
|
JavaScript 前端开发
初识JavaScript函数Arguments模拟重载
初识JavaScript函数Arguments模拟重载
86 0
|
JavaScript 前端开发
JavaScript深入之new的模拟实现
JavaScript深入系列第十二篇,通过new的模拟实现,带大家揭开使用new获得构造函数实例的真相
131 0
JavaScript深入之new的模拟实现