【发布时间】:2014-03-09 07:48:06
【问题描述】:
我很难尝试进行正确的表单验证。我有姓名、电子邮件和电话号码字段。我对所有这些都实施了验证检查,当我单击提交查询时,它返回电子邮件为假,但没有其他任何东西。它也仍将提交表单。我该如何解决这个问题?
JSFiddle:http://jsfiddle.net/GVQpL/
JavaScript 代码:
function validateForm(/*fullName, email, phoneNumber*/)
{
//-------------------------NAME VALIDATION-----------------------------//
var fullNameV = document.forms["queryForm"]["fullName"].value;
if (fullNameV == null || fullNameV == "")
{
alert("Name must be filled out!");
return false;
}
else if(fullNameV.indexOf(" ") <= fullNameV.length)
{
alert("Not a valid name");
return false;
}
//-------------------------EMAIL VALIDATION-----------------------------//
var emailV = document.forms["queryForm"]["email"].value;
if (emailV == null || emailV == "")
{
alert("Email must be filled out!");
return false;
}
var atpos = emailV.indexOf("@");
var dotpos = emailV.lastIndexOf(".");
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length)
{
alert("Not a valid e-mail address");
return false;
}
//-------------------------PHONE # VALIDATION-----------------------------//
var phoneNumberV = document.forms["queryForm"]["phoneNumber"].value;
if (phoneNumberV == null || phoneNumberV == "")
{
alert("Phone Number must be filled out!");
return false;
}
var error = "";
var stripped = phoneNumberV.replace(/[\(\)\.\-\ ]/g, '');
if (phoneNumberV == "")
{
error = alert("You didn't enter a phone number.\n");
phoneNumberV.style.background = 'Yellow';
}
else if (isNaN(parseInt(stripped)))
{
error = alert("The phone number contains illegal characters.\n");
phoneNumberV.style.background = 'Yellow';
}
else if (!(stripped.length == 10))
{
error = alert("The phone number is the wrong length. Make sure you included an area code.\n");
phoneNumberV.style.background = 'Yellow';
}
return error;
}
【问题讨论】:
-
对于一个
alert不返回值,因此将其保存到error是没有意义的 -
@PatrickEvans - 同意,但这就是您从中获得的低效率?这里有很大的改进空间。
-
@PlantTheIdea,不,这只是我看到的第一件事,而且这是评论部分,并不是列出所有可以改进的地方。
-
@PatrickEvans - 触摸,先生。触摸。
标签: javascript html forms validation