onclick="" 调用多个函数. 返回false的问题

tonyzzp 2009-11-19 11:15:54
<script language="javascript" type="text/javascript">
function FormTest(string,type){
if(type=='email'){
var reg=/^[a-zA-Z0-9._]+@\w+(\.\w+)*\.\w+$/;
if(!reg.exec(string)){
alert("Email格式不正确!");
return false;
}
}
if(type=='mobilephone'){
var reg=/^1[35]\d{9}$/;
if(!reg.exec(string)){
alert("手机号码格式不正确");
return false;
}
}
}
</script>


<form id="form1" name="form1" method="post" action="">
email:
<input name="txt_a" type="text" id="txt_a" />
手机:
<input type="text" name="txt_b" id="txt_b" />
<input type="submit" name="bt_ok" id="bt_ok" value="提交" onclick="return FormTest(txt_b.value,'mobilephone');return FormTest(txt_a.value,'email')"/>
</form>
...全文
1021 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
Teresa_F 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 foolishdault 的回复:]

这这……路过
[/Quote]

对的~~ 最后一个是正确的~~ 我试过了~~
zk116442863 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qustgjk 的回复:]
要是那样你就改成return (a()|b()|c())试试
[/Quote]

把这个改成return(a()&&b())应该是你想要的吧
铁匠梁 2009-11-19
  • 打赏
  • 举报
回复
这这……路过
tonyzzp 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 quansheng3510 的回复:]
9楼写的也完全没有用吗,自己测试过没有?
[/Quote]

每个我都认真试过
基本上每个人写的都是对的.
但都不是我想要的.
quansheng3510 2009-11-19
  • 打赏
  • 举报
回复
9楼写的也完全没有用吗,自己测试过没有?
passself 2009-11-19
  • 打赏
  • 举报
回复
你可以调用一个函数,来调用其他函数
wangfeis 2009-11-19
  • 打赏
  • 举报
回复
支持
ValidateForm这个可以写到你的主页面中
其他正则验证写到一个公用的js中即可
hz890 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tonyzzp 的回复:]
我知道写在一个函数里就可以了.
不过我是想.
每一个表单里的内容都不一样的
还是希望能为每个文本框分别调用函数进行验证.
[/Quote]
=============================================
个人感觉在这里采用集中在一个方法中验证就可以了,如果想分别调用函数验证,可以参考下面代码:
<script language="javascript" type="text/javascript">
function FormTest(string,type){
if(type=='email'){
var reg=/^[a-zA-Z0-9._]+@\w+(\.\w+)*\.\w+$/;
if(!reg.exec(string)){
alert("Email格式不正确!");
return false;
}
}
if(type=='mobilephone'){
var reg=/^1[35]\d{9}$/;
if(!reg.exec(string)){
alert("手机号码格式不正确");
return false;
}
}
return true;
}
function ValidateForm()
{
var txt_b=document.getElementById("txt_b");
var txt_a=document.getElementById("txt_a");
if(!FormTest(txt_b.value,"mobilephone"))
{
return false;
}
if(!FormTest(txt_a.value,"email"))
{
return false;
}
return true;
}
</script>
.....................
<input type="submit" name="bt_ok" id="bt_ok" value="提交" onclick="return ValidateForm();"/>
.....................

zhouyongyang 2009-11-19
  • 打赏
  • 举报
回复
函数嵌套就行了啊
yjfjebj789 2009-11-19
  • 打赏
  • 举报
回复
像你这样写的话 直接传两数组进去, 验证完之后再return

tonyzzp 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ivws_19 的回复:]
第一个方法return了,第二个肯定不执行的
而且验证格式是否正确不应该在提交时进行,输入完毕就应该验证格式
[/Quote]
但是 第1个return true的话
第2个还是不会验证.
hz890 2009-11-19
  • 打赏
  • 举报
回复
楼主可以了解一下return语句的作用!
hz890 2009-11-19
  • 打赏
  • 举报
回复
<script language="javascript" type="text/javascript">
function FormTest(string,type){
if(type=='email'){
var reg=/^[a-zA-Z0-9._]+@\w+(\.\w+)*\.\w+$/;
if(!reg.exec(string)){
alert("Email格式不正确!");
return false;
}
}
if(type=='mobilephone'){
var reg=/^1[35]\d{9}$/;
if(!reg.exec(string)){
alert("手机号码格式不正确");
return false;
}
}
}
</script>
=============================================================

<script language="javascript" type="text/javascript">
function FormTest(){
var reg=/^[a-zA-Z0-9._]+@\w+(\.\w+)*\.\w+$/;
if(!reg.exec(string)){
alert("Email格式不正确!");
return false;
}

var reg=/^1[35]\d{9}$/;
if(!reg.exec(string)){
alert("手机号码格式不正确");
return false;
}
return true;
}
</script>
......
<input type="submit" name="bt_ok" id="bt_ok" value="提交" onclick="return FormTest();"/>
......
sinpinle 2009-11-19
  • 打赏
  • 举报
回复
建议你不要那么多return,
你完全可以再js里面写
var 电话;
function1(){
//电话的TRUE或者false
}
function2(){
if(电话){
//其他
}
}

onclick=“return function2();”
ivws_19 2009-11-19
  • 打赏
  • 举报
回复
第一个方法return了,第二个肯定不执行的
而且验证格式是否正确不应该在提交时进行,输入完毕就应该验证格式
阿_布 2009-11-19
  • 打赏
  • 举报
回复

<html>
<head>
<title></title>
<script language="javascript" type="text/javascript">
function FormTest(mobil,email){
var reg=/^[a-zA-Z0-9._]+@\w+(\.\w+)*\.\w+$/;
if(!reg.exec(mobil)){
alert("Email格式不正确!");
return false;
}
var reg=/^1[35]\d{9}$/;
if(!reg.exec(email)){
alert("手机号码格式不正确");
return false;
}
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
email:
<input name="txt_a" type="text" id="txt_a" />
手机:
<input type="text" name="txt_b" id="txt_b" />
<input type="submit" name="bt_ok" id="bt_ok" value="提交" onclick="return FormTest(txt_b.value,txt_a.value)"/>
</form>
</body>
</html>
qustgjk 2009-11-19
  • 打赏
  • 举报
回复
要是那样你就改成return (a()|b()|c())试试
tonyzzp 2009-11-19
  • 打赏
  • 举报
回复
我知道写在一个函数里就可以了.
不过我是想.
每一个表单里的内容都不一样的
还是希望能为每个文本框分别调用函数进行验证.
kahoho 2009-11-19
  • 打赏
  • 举报
回复
还是建议验证手机的和验证EMAIL的分开两个方法写,这样,后面页面有只验证手机的,或者是只验证EMAIL的,还可以重用,,这样也清晰。
hz890 2009-11-19
  • 打赏
  • 举报
回复
<input type="submit" name="bt_ok" id="bt_ok" value="提交" onclick="return FormTest(txt_b.value,'mobilephone');return FormTest(txt_a.value,'email')"/>
=================================================================================
<input type="submit" name="bt_ok" id="bt_ok" value="提交" onclick="return FormTest(txt_b.value,'mobilephone');"/>
加载更多回复(4)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧