form的action属性作用

一、action=""和action="#"、没有action属性的作用相同,都是提交到当前页面(也就是document.location.href)

二、action="currentPage.xxx":如果currentPage.xxx表示当前页面,则提交到当前页面,同事跳转到当前页面,当然就看不到url的变化;如果currentPage.xxx是非当前页面,则提交到非当前页面,也跳转到非当前页面

三、表单提交到自身时 action="" 与 action="currentPage.xxx" 的区别:

  通常为了省事 , 我们一般将表单的 action 属性设为 action=""/action="#",或者干脆不写,但是这会造成一个问题 , 就是其实将 action 设为 action="" 时 , 表单提交时真正提交的页面是action="currentPage.xxx?arguments=values&….", 也就是如果当前页面带有参数 , 参数也一并会提交 , 而且参数的优先级会高于 <form> 控件提交的参数,即如果 action="currentPage.xxx?arguments=values&…." 中的 arguments 有与 <form> 元素名相同的时候 ,获取值时 action=”currentPage.xxx?arguments=values&….” 值会将 <form> 的值覆盖,从页得到不正确的值.

  例 : SpecTop.asp 页面是表单要提交的页面 , 且有从上级页面传递过来参数

       action="" 真正提交时的页面 : SpecTop.asp?ClassID=000100200005&SpeID=947&SpeType=3

       如果 <form> 中有 <input type=”text” name=”SpeID” value=”1000”/>, 提交时得到的值将会是 947, 而不是 1000, 而 action=”currentPage.xxx” 就能得到1000

原文地址:https://www.cnblogs.com/shengulong/p/7418456.html