我完全使用1 onClick调用(进行电子邮件验证)。
<script type='text/javascript'>
function emailValidator(elem, helperMsg){
var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
if(elem.value.match(emailExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
</script>
在我的页面正文
<a href="#"
title="Yes, Count Me In!"
onclick="emailValidator(document.getElementById('email'), 'Please Enter A Valid Email'); return false;"
>
----&GT; 现在,是否有可能为此onClick执行条件? 如果电子邮件字段有效,请运行此其他额外呼叫( rsvp('是'); )。
<a href="#"
title="Yes, Count Me In!"
onclick="emailValidator(document.getElementById('email'), 'Please Enter A Valid Email'); rsvp('yes'); return false;"
>
答案 0 :(得分:2)
<a href="#" title="Yes, Count me In!" onclick="myFunction">
<script>
function myFunction() {
var elem = document.getElementById("email");
emailValidator(elem, 'Please Enter A Valid Email') && rsvp('yes');
}
var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
function emailValidator(elem, helperMsg){
return elem.value.match(emailExp) ?
true :
(alert(helperMsg), elem.focus(), false);
}
</script>
第一个将代码发送到全局函数的摘要。然后验证电子邮件并仅运行 rsvp函数,如果电子邮件有效(即它返回true)
答案 1 :(得分:0)
创建一个处理逻辑的全局函数,并将此函数调用到onclick事件中
答案 2 :(得分:0)
是的,尽管这是可能的,但它可能无法解决你想要的方式。因此,您的代码将调用rsvp函数nomatter从emailValidator函数获得的内容。你可能想做这样的事情:
<a href="#" title="Yes, Count Me In!" onclick="if(emailValidator(document.getElementById('email'), 'Please Enter A Valid Email')){rsvp('yes');};return false;">
另一个聪明的提示是将document.getElementById
- 部分替换为this
,如下所示:
<a href="#" title="Yes, Count Me In!" onclick="if(emailValidator(this, 'Please Enter A Valid Email')){rsvp('yes');};return false;">
这应该确保即使你重命名输入的id,它仍然可以工作。当在onclick,onchange或其他任何内容中时,这总是会被单击/编辑/等对象。
另外,正如其他人所建议的那样,我建议制作一个能为你做这个的功能,但我知道那些喜欢将所有逻辑都放在onclick-handler中的人,因为这就是你要求我做的事情。以为我会说明怎么做。但请注意,这会很快变得混乱,并且会像
那样function rsvpClick() {
if(emailValidator(document.getElementById('email'), 'Please Enter A Valid Email')) rsvp('yes');
}
然后
<a href="#" title="Yes, Count Me In!" onclick="rsvpClick();">
通常更干净,更易读。
答案 3 :(得分:-1)
如果通过验证,您可以只调用rsvp()
函数。像这样:
function ValidateAndRSVP(elem, helperMsg){
var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
if(elem.value.match(emailExp)){
rsvp('yes');
return true;
}
else{
alert(helperMsg);
elem.focus();
return false;
}
}