使用Javascript进行form的Post

来源:互联网 发布:软件 竞业协议 编辑:程序博客网 时间:2024/06/04 18:46

半年来写东西写得少了也许是懒了吧.

最近彻底的投入了Web开发当中, 也是终于开始正式接触JS了.

以前大学的时候学习ASP.NET,几乎没写过JS,因为控件很好很强大,基本不需要用到JS, 即使不好实现的东西也想着办法在避免写JS代码.当时的想法是ASP.NET很好很强大, 还学什么JS.

可是自从接触了PHP,才发觉ASP.NET控件是一种很臃肿很不方便的东西. 不但为你带来不了多少便利性,反而会让人毫无Web开发的基础知识. 什么是form都搞不清楚,因为ASP.NET的WebForm都已经为你封装好了,你双击按钮后在后台自动生成的事件代码中心编写相应代码即可, 你所需要的数据都可以用形如this.txtInput.Text的语句中拿到.

这就是我认为学习ASP.NET作为Web开发入门的最大的弊端.

不过现在有了ASP.NET MVC,这种情况就有所改变了, 不使用任何控件,完全使用web tags就能进行开发,当然,在页面(View)中需要加入部分代码.

这里不谈MVC的学习, 想学MVC可以参考我一个朋友写的系列文章: 深入理解ASP.NET MVC

 

进入正题, 说我接触到的有关Form的submit.

<form>    <input type="text" name="test" />    <input type="submit" /></form>

这件就能够提交form的数据了,如果你不希望使用按钮而是链接来提交可以在链接上加入JS代码

<form name="newform">    <input type="text" name="test" />    <a href="#" onclick="submitform();" /></form><script type="text/javascript">    function submitform(){    var thisform = document.getElementById('newform');thisform.submit();}</script>

上面就是一个最简单的使用JS提交form的例子, 你可以在JS中加入判断来决定是否执行form的submit. 当然你也可以像我一样直接提交这个form.

不过在有些时候, 我们在提交数据的时候却无法编写一个form, 比如说当前的form是提交到"a.php", 可是你希望点击另外个submit按钮的时候是提交到"b.php". 这怎么办呢? 我们当然可以使用JS来实现.

<form action="a.php" method="get" name="newform" >    <input type="text" name="test" /><input type="submit" /><input type="button" onclick="submitform();" /></form><script type="text/javascript">    function submitform(){        var data = document.getElementById('test').value;        var myForm = document.createElement("form");        myForm.method = "post";        myForm.action = "b.php"        var myInput = document.createElement("input");        myInput.setAttribute("name", "test");        myInput.setAttribute("value", data);        myForm.appendChild(myInput);        document.body.appendChild(myForm);        myForm.submit();        document.body.removeChild(myForm);}</script>

代码很简单, 用JS来构造一个form后把相应的数据组织好, 加入到body之中,submit之后再从body中移除掉这个form

原创粉丝点击