你不知道的form

<form id='form' action="html_form_action.asp" method="get" enctype="">
	<input type="text" name="firstname">
	<input type="submit" value="Submit">
</form>

1、最常见的就是他的两个属性action和methods
action:规定当提交表单时向何处发送表单数据(url)
method:用哪种方式发送(post/get)
enctype:规定在发送表单数据之前如何对其进行编码

2、点击type为submit的元素,即可向后端发送表单数据
注意:点击后,页面会默认跳转到action地址页面。那一页将显示后台返回结果。
如果不想跳转,可以有两种方法:
(1)将submit按钮设置为type=“button”,用ajax进行后台提交数据
(2)return false之后,form就不会跳转了

$('#form').submit(function () {
         return false;
})

3、enctype有哪些值(默认为application/x-www-form-urlencoded)
(1)application/x-www-form-urlencoded 表单数据会编码为 “application/x-www-form-urlencoded”。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 “+” 加号,特殊符号转换为 ASCII HEX 值)。
(2)multipart/form-data 不对字符编码,在使用包含文件上传控件的表单时,必须使用该值。
(3)text/plain 表单数据会在未编码的情况下进行发送,空格转换为 “+” 加号,但不对特殊字符编码。

4、form表单提交后,想通过回调函数提示用户提交成功
注意:原生表单做不到,可以使用Ajax
解决方案:

$('form').on('submit',function(e){
    e.preventDefault();
    $.ajax({
        type:"get",
        url:"http://yoursite",
        data:{
            name:"xxx"//把表单填写值放这里传到后端
        },
        success:function (data) {
            console.info("返回值:",data);
        }
    });
})

5、但是使用Ajax有个问题,如何获取表单里的所有数据呢,用原生js一个一个拿吗?还是用jQuery的$(“form”).serializeArray()的方法?
也不是不行,但是,太麻烦了。
使用jquery.form.js是一个不错的选择。

$('form').on('submit',function(e){
    e.preventDefault();
    $('#form').ajaxSubmit({
        type:"get",
        url:"http://yoursite",
        beforeSerialize:function(){
        	//发送的表单值之前修改某些表单的值
		}
		beforeSubmit:function(){
			//可以做表单提交前的验证,不通过则可以阻止表单的提交
		}
        success:function (data) {
            console.info("返回值:",data);
        }
    });
})
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值