JavaScript中传递给多个条件的值
我有一个输入字段,我在这里检查这两个条件JavaScript中传递给多个条件的值,javascript,jquery,forms,validation,error-handling,Javascript,Jquery,Forms,Validation,Error Handling,我有一个输入字段,我在这里检查这两个条件 如果输入字段是有效的电子邮件格式 如果输入字段以特定域结尾 目前,它只是忽略特定于域的条件,并允许用户输入clark。kent@dailyplanet.com我得到了错误信息: 未捕获类型错误:无法读取未定义的属性“toLowerCase” 不知道为什么会发生这种情况,正如我检查的: var obj = {} obj['$emailFieldValue'] = $emailFieldValue console.log('obj.$
clark。kent@dailyplanet.com
我得到了错误信息:
未捕获类型错误:无法读取未定义的属性“toLowerCase”
不知道为什么会发生这种情况,正如我检查的:
var obj = {}
obj['$emailFieldValue'] = $emailFieldValue
console.log('obj.$emailFieldValue', typeof obj.$emailFieldValue)
还有绳子?!但是错误是未定义?我建议拆分验证,然后再执行验证,请看一看
函数isValidEmailAddress(emailAddress){
(a-z\d d!3555 5 5 5 5 5 5 5 5 5 5,,,,,,,,,,[10-10 10-10 10(1-a-z\d d\d d d d d d!????.[[a-a-z\d d d d d d d d d![[5 5 5-0-d..[[10-10-7 7 [[[[[[[[[[[1244]本本本州州]7}}}}}-\UK0 0 0\uuuuuu0 0 0-0-0-0-0-0-\\UUUU00000000000000000000000-\UUKKKKKKKKKKK0\\\\\\U777777-0\假如假如-----7\\\UF7FF\UF7FF\\\\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]| \\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*(3)在本次测试中,([[[[3\t][[3\t][[3\t][3\t][3\t][[3[t][3[3[3[t][3][[3[a-z-z\d\d\d\U00A00-[3[3-t][3[3-t][3[3-z\d-d\U00-0-0-0-0-UF7F-UF-UF-UF-FD-FD-KF\UF-FD-FD-FD\UF\UF-FD-FD\UF-FD-900-\UF\UF\UF\UF-FD\UF-FD-FD\UFF900-\UFF900-\UFF900-\UFF900-\UF\UF-FD\UF-FD-FD-FD-FD-FD\-\uFDCF\uFDF0-\uFFEF]|[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF][a-z\d \-.\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]*[a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])\?$/i;
返回模式.test(emailAddress);
}
函数isValidDomainAddress(电子邮件地址){
返回emailAddress.toLowerCase()=“acme.com”;
}
$(“#新闻稿_提交”)。在('单击',函数(){
document.getElementById('newsletter_text')。removeAttribute('required'))
var$emailFieldValue=$(“#新闻稿_文本”).val();
var$splitEmailFieldValue=$emailFieldValue.split('@');
var$result=$(“#result”);
var isValid=isValidEmailAddress($emailFieldValue);
如果(!isValid){
$result.animate({'opacity':0},0,函数(){
$($result).text('必须是有效的电子邮件格式').css('颜色','红色');
}).animate({'opacity':1},500);
}
var obj={}
obj['$emailFieldValue']=$emailFieldValue
console.log('obj.$emailFieldValue',obj.$emailFieldValue的类型);
var isValidDomain=isValid?isValidDomainAddress($splitEmailFieldValue[1]):false;
if(isValid&!isValidDomain){
$result.animate({'opacity':0},0,函数(){
$(this).text('只有Acme员工才能注册,即。joe@acme.comcss('color','red');
}).animate({'opacity':1},500);
}
if(isValid&&isValidDomain){
$result.animate({'opacity':0},0,函数(){
$(此).text('谢谢注册').css('颜色','绿色');
}).animate({'opacity':1},500);
}
});
提交$splitEmailFieldValue
的console.log是什么?@Taplar感谢您的响应…字符串!不,它是一个数组。所以记录它应该在控制台中打印一个数组。它的值是什么?它应该打印到控制台['clark.kent','dailyplanet.com']
另请注意;从安全角度来看,限制电子邮件域应该在服务器端完成,而不是客户端。或者不仅仅是客户端。有一些简单的方法可以绕过您的逻辑。@Taplar哦,对不起,我误读了……谢谢Juan!这就是我想要的!
var obj = {}
obj['$emailFieldValue'] = $emailFieldValue
console.log('obj.$emailFieldValue', typeof obj.$emailFieldValue)