【发布时间】:2012-02-29 18:24:24
【问题描述】:
【问题讨论】:
标签: jquery forms dynamic input
【问题讨论】:
标签: jquery forms dynamic input
检查有效的正则表达式和长度。您的正则表达式对空字段成功。
你在这里检查 jQuery 元素集合的长度
if(!$("#sForm input#write").length > 0) $("input#sub").hide();
但是你必须检查值的长度
detectEmail.length == 0
$('input#sub').hide();
$('input').keyup(function() {
$('span.attention').hide();
var detectEmail = $(this).val();
var emailRegex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(detectEmail.length == 0 || !emailRegex.test(detectEmail))
{
$('#sub').hide();
$(this).after('<span class="attention">Writing valid e-mail...</span>');
}
else
{
$('#sub').show();
}
});
【讨论】:
if ( detectEmail.length == 0 || !emailRegex.test(detectEmail) ) - 首先检查长度将避免执行正则表达式,我猜什么都没有。
检查空字符串实际上是错误的。
这个返回元素的数量(总是1):
$("#sForm input#write").length
改成这样的
$("#sForm input#write").val().length
【讨论】: