Js表单提交

JavaScript010

Js表单提交,第1张

表单提交是刚开始学js的朋友很迷惑的一个问题,怎么提交,怎么阻止默认提交,怎么提交表单不跳转等等问题,下面是一些示例

原始的表单提交有 button 按钮提交和 <input />类型的。它们又什么区别呢?

(1) 默认表单提交

(2)默认不会提交表单

(3) 如果在 form ,我们使用了 type=''submit 属性,但是不让表单默认提交,有什么办法呢?看下面

(4) 如果在 form ,我们使用了 type=''button 属性,但是还是需要提交表单,这是可以使用ajax来提交,好处是可以自己控制提交,并且页面不会跳转

(5)若是使用默认提交的方法,且提交之前验证表单,方法看下面

(6) 若是使用了 type='button' 属性,但是还是想实现默认提交的方式怎么办? 看下面

(7) 下面的提交会发生什么?

分析 : 点击提交按钮:

(1)当表单验证失败时,不会触发 form.submit() 函数,所以可以触发 <form>的 onsubmit 句柄,又因为该句柄 return false 所以表单不会从该句柄处默认提交,所以 会在控制台打印出 表单的onsubmit事件句柄在form.submit()调用时失效'

(2)当表单验证成功时,会触发 form.submit() 函数提交表单,又因为 form.submit()提交表单的方式与用户单击 Submit 按钮一样,但是表单的 onsubmit 事件句柄不会被调用,所以 控制台不会打印出 表单的onsubmit事件句柄在form.submit()调用时失效

现在表单默认提交的方式基本没人用了,都是ajax异步提交。但是了解一些还是好的。。。

可以提交。

缺陷:

1、如果后端没有验证,容易导致服务器出现500错误,比如前端传了后端不需要的字段类型。

2、前端不验证,只能让后端来验证,无形中增大的服务器的压力。

把我的js验证表单代码给你吧:

var myreg =/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/

function reg_check(){

if(document.form1.username.value.match(/^[a-zA-Z]*/) == ''){

alert('用户名不能为空且必须以字母开头!')

document.form1.username.focus()

return false

}

else if(document.form1.userpwd.value.length==0){

alert('密码不能为空!')

document.form1.userpwd.focus()

return false

}

else if(document.form1.userpwd.value.length<6||document.form1.userpwd.value.length>16){

alert('密码长度不得小于6且大于16位!')

document.form1.userpwd.focus()

return false

}

else if(document.form1.userpwd.value.length<6||document.form1.userpwd.value.length>16){

alert('密码长度不得小于6且大于16位!')

document.form1.userpwd.focus()

return false

}

else if(document.form1.confirmpwd.value!=document.form1.userpwd.value){

alert('两次密码输入不一致!')

document.form1.confirmpwd.focus()

return false

}

else if(document.form1.email.value.length==0){

alert('邮箱不能为空!')

document.form1.email.focus()

return false

}

else if(!myreg.test(document.form1.email.value)){

alert('邮箱格式错误!')

document.form1.email.focus()

return false

}

else {

document.form1.submit()

}

}

<form name="form1" action="" method="post">

<input type="text" name="username" />

<input type="password" name="userpwd" />

<input type="password" name="confirmpwd" />

<input type="text" name="email" />

<input type="submit" name="submit" onclick="return reg_check() " />

</form>