我必须使用JS或JQ验证电子邮件地址。 现在我使用JS但无法传递文本框的值作为JS的参数。我希望在onchange上实现它。 我发现解决方案只使用一个按钮来验证我不想要的。
这是HTML代码。
<div class="form-group">
<label class="control-label">Father's E-Mail Address</label>
<input maxlength="30" pattern=".{1,50}" onchange="validateEmail(document.getElementById('txtFatherEmail').value);" title="Input Invalid" type="text" required="required" class="form-control" placeholder="Enter Father's E-Mail Address" id="txtFatherEmail" runat="server"/>
</div>
这是我用过的JS。
function validateEmail(email) {
var emailReg = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
var valid = emailReg.test(email);
if (!valid) {
alert("False");
} else {
alert("True");
}
}
此外,我想知道是否有更好的方法来做到这一点。
答案 0 :(得分:0)
如果我理解正确,您需要在输入时验证输入。
为此,您可以使用onkeyup事件。
<div class="form-group">
<label class="control-label">Father's E-Mail Address</label>
<input maxlength="30" pattern=".{1,50}" onkeyup="validateEmail(this.value);" title="Input Invalid" type="text" required="required" class="form-control" placeholder="Enter Father's E-Mail Address" id="txtFatherEmail" runat="server"/>
</div>
答案 1 :(得分:-1)
为什么使用带有&#34;值&#34;的getElementById?难道你不能使用你的jquery语法吗?请记住,jquery元素不是javasript don元素。也许这就是诀窍......
答案 2 :(得分:-1)
function isvalid(x){
regexp1 = /@/g
gmail = /gmail.com/g
hotmail = /hotmail.com/g
if(regexp1.test(x) == true){
if(x.match(regexp1).length == 1){
x = x.split("@")
if(gmail.test(x[1]) == true){
if(x[1].match(gmail).length == 1 && x[1].length == 9){
alert("ok valid")
}else{
alert("not valid")
}
}else if(hotmail.test(x[1]) == true){
if(x[1].match(hotmail).length == 1 && x[1].length == 11){
alert("ok valid")
}else{
alert("not valid")
}
}else{
alert("no mail")
}
}else{
alert("too much @")
}
}else{
alert("no @")
}
}
这个函数是jquery电子邮件检查功能,它只是查找gmail和hotmail,如果你只想检查来自hot和gmail的电子邮件,它是可靠的功能