Her er en løsning:
<html>
<head>
<script src="
http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" src="
http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script> <script>
function isInt(x) {
var y=parseInt(x);
if (isNaN(y)) return false;
return x==y && x.toString()==y.toString();
}
function isEmail(email) {
var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (regex.test(email)) return true;
else return false;
}
jQuery.validator.addMethod("email_phone", function(value, element) {
var success = false;
if (value.length == 8) {
if (isInt(value)) success = true;
} else {
if (isEmail(value)) success = true;
}
return this.optional(element) || success == true;
}, "Feltet skal indeholde enten en email eller et telefonnummer!");
$(document).ready(function(){
$("#testForm").validate();
});
</script>
</head>
<body>
<form id="testForm" method="get" action="">
<label for="cemail">E-Mail/telefon</label>
<input id="cemail" name="email" size="25" class="required email_phone" /><br />
<input class="submit" type="submit" value="Submit"/>
</form>
</body>
</html>
Der er to hjælpe funktioner til at tjekke om det er et tal eller email. Jeg kan ikke lige lure hvordan man kan bruge de eksisterende i validator inde i en custom metode. Men det giver vel samme resultat.