对不起这个最有可能简单的问题。
我在提交表单时运行脚本(下面的代码),但首先我想在执行代码之前验证表单(包含一个必须是电子邮件的文本框)。
下面的脚本取自这里,以确保将表单数据传递给 colorbox lightbox 脚本。但我只想在表单得到验证的情况下运行它。我不知道如何将其与电子邮件验证脚本结合使用。帮助!目前我有一个验证电子邮件(dreamweaver)的脚本并且正在运行,即使它没有验证,这个命令仍然运行,我不知道如何编辑它,所以它不会。
$(document).ready(function() {
$("input#SearchButton").colorbox({href: function(){
var url = $(this).parents('form').attr('action');
var ser = $(this).parents('form').serialize(); //alert(url+'?'+ser);
return url+'?'+ser;
}, innerWidth:"1280", innerHeight:"884px", iframe:true, scrolling:false});
});
然后我用它来验证表格:
function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} }} else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
} }
谢谢!!!!
跳跳虎的 HTML 是:
<input name="submit" type="image" onclick="MM_validateForm('email','','RisEmail');return document.MM_returnValue" src="images/go-button.gif" alt="Go! Get quote now!" align="top" : id="SearchButton"/>
简而言之:如果表单使用第二个代码段中的代码进行验证,即使在第三个代码段中,我也想触发第一个代码段中的代码,但如果不是,则不是。