使用Javascript进行form的Post

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

最近彻底的投入了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="#" οnclick="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" οnclick="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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值