为什么用HTML和JS不能把angularjs表单提交数据提交到本地?

在一个html页面中,页面的跳转都是在一个form表单提交中完成,看不到url,用js如何去取得这个url?_百度知道
在一个html页面中,页面的跳转都是在一个form表单提交中完成,看不到url,用js如何去取得这个url?
有类似经验的同仁请赐教。
我有更好的答案
按默认排序
我当初学html只学了半天 主要为后面的JSP做准备 跳转的请求肯定有个对象 封装了请求的所有信息 具体是哪个 你自己查下API吧
html没啥印象了
form的action里有这个url阿
就是页面的每个按钮中都是触发的js,比如:按钮一(javascript:submitpage(‘form’,‘’,‘’,‘’)类似这种格式的。
是想监听别人写好的js提交地址么?
是,拿到之后我要在另外一套系统做跳转
js里面有地址的
js里面没地址,只有参数。不是页面刷新就会产生一个地址么?
代码贴出来看看呀
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何使用javascript向服务器提交数据(post)
编写Web程序的时候,客户端跟服务器必然有数据的传输,因此很多情况下,客户端需要向服务器提交大量的参数,包括中文和英文。这样一来就会有下面的问题:第一,这些参数很可能在页面的不同位置,例如,在不同的form标签下,因此单纯Html代码很不好实现;第二,参数中含有中文,很容易引发各种各样的编码问题;第三,客户端通过Get方式提交数据,编码问题比起使用Post方式来提交数据更为突出。
使用JavaScript向服务器以Post的方式提交数据可以克服以上几个问题。
2&技术原理
2.1为什么用Post?
向服务器提交数据常见的两种方式是Get和Post。Get方式一般会在url后面把参数带上,如“http://127.0.0.1:8080/struts2test/database/datatest.html?id=5&name=li”。
使用Get方式提交数据,浏览器会对URL进行URL
encode,然后发送给服务器,不同的浏览器可能会有不同的编码方式,因此发送之前需要使用JavaScript对参数进行统一编码,比较麻烦,本文没有使用这种方法。
对于POST方式,表单中的参数值对是通过request
body发送给服务器,此时浏览器会根据网页的meta标签中的content="text/
charset=UTF-8"中指定的编码进行对表单中的数据进行编码,然后发给服务器,在服务器端的程序中我们可以通过request.setCharacterEncoding("charset")方式(JSP代码)
设置编码,然后通过request.getParameter获得正确的数据。所以使用Post提交数据,编码方式就是我们可以控制的了。Post表单的Html一般写法如下:
&form action="test.jsp"
method="post"&
id:&input type="text"
name="id"/&
name:&input type="text"
name="name"/&
&input type="submit"
value="发送"/&
总结一下使用Post方式提交数据相对于Get方式的优点[1]:
更加安全(数据不会出现在URL中);
Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post;
更少的乱码问题。(上面提到)
2.2为什么使用JavaScript?
使用Post提交数据可以采用纯Html来实现,为什么要使用JavaScript呢?实践证明,很多情况下,需要提交的数据分散在网页的各个地方,很难集中在一个Form标签下,直接通过Html的形式来提交数据既会使Html代码显得凌乱,又不优雅。
JavaScript结合DOM技术可以解决这个问题。DOM(Document Object
Model),即文本对象模型,它基于语义的逻辑结构,允许脚本访问Web文档的任一元素或内容。DOM不是JavaScript的一部分,而是内置在浏览器中的一个对象模型。[2]我们完全可以采用JavaScript操作Html文档的DOM对象,获得我们想要上传的数据,将其“组装”在一个Form中,然后以Post方式提交到服务器。
2.3JavaScript+Post优点?
具有Post方式提交数据的所有优点;
简化Html代码编写。主要的处理都在JavaScript脚本中进行;
使用JavaScript+Post方式提交数据,只需要在JavaScript脚本部分来“组装”和发送数据,增强了程序的可扩展性和可维护性。当要提交的数据较多或数据较分散的时候,这一优势更加明显。
3.1超链接形式
做web开发的时候经常会遇到中文乱码问题,这个问题一般是在用get方式提交数据时出现的,用post则一般可以避免中文乱码问题。我起初做开发的时候就遇到这种问题,于是我就想有没有什么办法能在点击某个超链接的时候将参数以post方式传到服务器呢?答案是肯定的,使用javascript就可以完成任务。
话不多说,上代码,这是主要的javasript代码:
type="text/javascript"&
function postwith(to, p) {
var myForm = document.create_r_r_rElement_x("form");
myForm.method = "post";
myForm.action =
for ( var k in p) {
var myInput = document.create_r_r_rElement_x("input");
myInput.setAttribute("name", k);
myInput.setAttribute("value", p[k]);
myForm.a(myInput);
document.body.a(myForm);
myForm.submit();
document.body.removeChild(myForm);
超链接的代码:
href="javascript:postwith('datatest.action',{'currentPage':'2','xisuo':'计算机'})"&use
js to post&/a&
点击超链接后可以将currentPage、xisuo的值以post的形式发送到datatest.action进行处理,特别是在处理多个参数的时候显得非常方便。
3.2按钮形式
接收用户输入数据的页面a.html
&!DOCTYPE&html&PUBLIC&"-//W3C//DTD&HTML&4.01&Transitional//EN"&"http://www.w3.org/TR/html4/loose.dtd"&
&meta&http-equiv="Content-Type"&content="text/&charset=utf-8"&
&title&使用javascript传递数据&/title&
&script&type="text/javascript"&
function&postData(){
var&myForm&=&document.create_r_rElement("form");
myForm.method&=&"post";
myForm.action&=&"a.jsp";
var&inputs=document.getElementsByName("post_data");
for&(i=0;i&inputs.i++)&{
var&myInput&=&document.create_r_rElement("input");
myInput.type&=&"text";
myInput.name="post_data";
myInput.value=inputs[i].
myForm.a(myInput);
document.body.a(myForm);
myForm.submit();
document.body.removeChild(myForm);
&form&name="form1"&action="a.jsp"&method="post"&
&input&name="post_data"&type="text"&&/input&
&input&type="button"&onclick="postData()"&value="提交"&&/input&
&form&name="form2"&action="a.jsp"&method="post"&
&input&name="post_data"&type="text"&&/input&
&input&type="button"&onclick="postData()"&value="提交"&&/input&
&form&name="form3"&action="a.jsp"&method="post"&
&input&name="post_data"&type="text"&&/input&
&input&type="button"&onclick="postData()"&value="提交"&&/input&
a.html页面效果如图1。
在a.html页面中任意输入几个中文,点击任一按钮,跳转到a.jsp页面,a.jsp接收用户提交的数据并将其显示在页面上。
处理用户输入数据并输出在页面上a.jsp
&%@&page&language="java"&contentType="text/&charset=UTF-8"&pageEncoding="UTF-8"%&
&!DOCTYPE&html&PUBLIC&"-//W3C//DTD&HTML&4.01&Transitional//EN"&"http://www.w3.org/TR/html4/loose.dtd"&
&meta&http-equiv="Content-Type"&content="text/&charset=UTF-8"&
&title&获得客户端数据&/title&
//这里设置的字符集要跟index.html中的charset一致
request.setCharacterEncoding("utf-8");
String[]&text=request.getParameterValues("post_data");
for(String&t&:&text){
out.print(t+"&br&");
例如用户输入的是“中国”“美国”“日本”三组中文,点击任一按钮后,跳转到a.jsp页面,页面如图2所示。
本文提供了一种使用JavaScript向服务器提交数据的方法。一般来讲,我建议尽量都使用Post方式来提交数据,如果数据比较少而且集中的话,可以使用Form表单来提交即可。如果涉及到大量数据的提交或是数据在页面比较分散,强烈推荐采用JavaScript来完成数据提交。
[1]Methods&GET&and&POST&in&HTML&forms&-&what's&the&difference?[Z]
[2]熊圣芬,贺智明,王俊基于JavaScript和DOM的动态表单设计及数据提交[J].江西理工大学学报,2009,30(1):31-33.
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。(责任编辑:)
友情链接:联系人:QQJasonLeemz 的BLOG
用户名:JasonLeemz
文章数:43
访问量:79032
注册日期:
阅读量:2116
阅读量:47285
[匿名]51cto游客:
51CTO推荐博文
&&form action=&链接的地址& name=&example& &method=&post&&
& & &&a href=&javascript:sub();& name=&savesubmit& id=&savesubmit& class=&btn_save&&
& & & & &保存
& & &&a href=&address_manage.php?act=show& class=&btn_cancel&&
& & & & &返回
& & & &/a&
function sub()
&&& &&& document.example.submit(); & & & &//example是上面表单的name
这样就可以随心所欲设计button的样式了 &^_^
了这篇文章
类别:未分类┆阅读(0)┆评论(0)form表单提交,另一个js页面怎么把form表单的值显示到这个js页面的文本框中?_百度知道
form表单提交,另一个js页面怎么把form表单的值显示到这个js页面的文本框中?
index2; action=&quot.html?z=m&quot&post&form name=&form1&& method=&js接收页面代码应该怎么写
提问者采纳
var output = getvar[0] + &
for (var i=0.split(&&#92?&br&gt.&;script&gets_array.
var gets_array =i++)
var getvar = gets_array[i];);& + getvar[1] + & 的值是 &&
function query_get(){
var querystr =\).split(&&&quot.write(output); + &/
var gets = query_get().split(&#39. i&&
&lt参考一下这个&)
return querystr[1];&;script&gt
其他类似问题
您可能关注的推广
文本框的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 angularjs表单提交 的文章

 

随机推荐