js与form交互方式总结
Write By CS逍遥剑仙
我的主页: csxiaoyao.com
GitHub: github.com/csxiaoyaojianxian
Email: sunjianfeng@csxiaoyao.com
QQ: 1724338257
前言:刚开始接触web开发的时候,往往采用form表单直接提交的方式,但可能存在兼容问题,如:
<form method="" action="">
...
<input type="submit" value="submit"/>
</form
后来熟悉了js,更加倾向于使用ajax提交表单,有时甚至连form标签都不使用了。
然而,从HTML语义化的角度来说,使用form表单有更强的可读性,虽然简单,仍简单总结下form与js的兼顾。
1 方式一:onsubmit验证提交
在form
标签中增加onsubmit
事件来判断表单提交是否成功
<script type="text/javascript">
function validate(obj) {
if (confirm("提交表单?")) {
alert(obj.value);
return true;
} else {
alert(obj.value);
return false;
}
}
</script>
<body>
<form action="" onsubmit="return validate(document.getElementById('myText'));">
<input type="text" id="myText"/>
<input type="submit" value="submit"/>
</form>
&lcsxiaoyao.com t;/body>
2 方式二:通过button按钮触发自定义方法验证提交
会自动忽略其他标签中的属性,如form
标签中的onsubmit
属性失效,js使用submit
方法提交
<script type="text/javascript">
function validate() {if(confirm("提交表单?")){return true;}else{return false;}};
//也可以绑定click事件
function submitForm() {
if (validate()) {
document.getElementById("myForm").submit();
}
}
</script>
<body>
<form action="" id="myForm">
<input type="text"/>
<input type="button" onclick="submitForm();"/>
</form>
</body>
3 方式三:将onsubmit(onclick)事件放在submit标签中
将onsubmit
事件放在submit
标签中而不是form
标签中,此时表单验证失效,点击提交按钮表单直接提交
<script type="text/javascript">
fucsxiaoyao.com nction validate() {
if (confirm("提交表单?")) {
return true;
} else {
return false;
}
}
</script>
<body>
<form action="">
<input type="text"/>
<input type="submit" value="submit" onsubmit="return validate()"/>
</form>
</body>
4 方式四:数据处理(serialize)
ajax
得到form
表单数据的便捷方法serialize
var formData=$("#formId").serialize();
$.ajax({
type: "POST",
url: "http://www.csxiaoyao.com",
data:formData,
success: function(result){
}
});