验证表单的两种方式:onSubmit和onClick

onSubmit是表单上(也只能是表单)用的,提交表单前会触发


onClick是按钮等控件上用的,用来触发点击事件.

用作数据验证的时候,可以选择在submit按钮上的onclick中验证,可以在onsubmit中验证.但是从事件触发顺序上来说,onclick更早.顺序是:

用户点击按钮->onclick->如果onclick返回有效或未处理onclick则提交表单->onsubmit->如果onsubmit未处理或返回true,则提交,否则取消提交.

onsubmit中返回false会引起取消表单提交;onclick中返回false则会引起此次点击操作被判断为无效,则也就不会引起表单提交.

第一种:onsubmit

<script language="javascript">

function CheckPost () {
if (addForm.user.value == "") {
alert("请填写用户名!");
addForm.username.focus();
return false;
}
if (addForm.title.value.length < 5) {
alert("标题不能少于5个字符!");
addForm.title.focus();
return false;
}
return true;
}
</script>

<form action="test.php" method="post" name="addForm" onsubmit="return CheckPost();">
<div>用户:<input type="text" size="10" name="user" maxlength="20"/></div>
<div>标题:<input type="text" name="title" maxlength="50"/></div>
<div>内容:<textarea name="content" rows="8" cols="30"></textarea></div>
<div><input type="submit" name="submit" value="发表留言"/></div>
</form>

<?php
if($_POST['submit']) {

echo "<script language=\"javascript\">alert('提交成功!');history.go(-1);</script>";
}
?>

第二种:onclick

<script language="javascript">
function SendForm () {
if(CheckPost()) {
document.addForm.submit();
}
}

function CheckPost () {
if (addForm.user.value == "") {
alert("请填写用户名!");
addForm.username.focus();
return false;
}
if (addForm.title.value.length < 5) {
alert("标题不能少于5个字符!");
addForm.title.focus();
return false;
}
return true;
}
</script>

<form action="test.php" method="post" name="addForm">
<div>用户:<input type="text" size="10" name="user" maxlength="20"/></div>
<div>标题:<input type="text" name="title" maxlength="50"/></div>
<div>内容:<textarea name="content" rows="8" cols="30"></textarea></div>
<div><input type="button" name="submit" value="发表留言" onclick="SendForm();"/></div>
</form>

<?php
if($_POST['submit']) {

echo "<script language=\"javascript\">alert('提交成功!');history.go(-1);</script>";
}
?>

posted @ 2013-11-30 16:11  飞扬时空  阅读(3040)  评论(0编辑  收藏  举报