2012-08-11 66 views
1

我有一个窗体包含潜在客户的信息字段。垃圾邮件发送者正在地址栏中输入网址。我想有一个错误消息时,字段包含的“http://”窗体包含特定文本时出现窗体错误消息

这里是表单代码:

<label>First Name:</label> <input id="first_name" name="first_name" type="text" size="20" /> 
<label>Last Name:</label> <input id="last_name" name="last_name" type="text" size="20" /> 
<label>Address:</label> <input name="address" type="text" size="30" /> 
<label>City, State &nbsp;Zip:</label> <input name="city" type="text" size="20" value="City, State Zip"/> 
<label>Phone Number:</label> <input name="phone" type="text" size="20" /> 
<label>Email:</label> <input id="email" name="email" type="text" size="30" /> 

以下是错误代码,我有:

function validateForm(){ 
    message = ''; 
    error = 0; 

    if (document.contact_form.first_name.value == '') { 
     message = 'First name is a required field\n'; 
     error = 1; 
    } 
    if (document.contact_form.last_name.value == '') { 
     message = message + 'Last name is a required field\n'; 
     error = 1; 
    } 
    if (document.contact_form.phone.value == '') { 
     message = message + 'Phone Number is a required field\n'; 
     error = 1; 
    } 
    if (document.contact_form.email.value == '') { 
     message = message + 'Email is a required field\n'; 
     error = 1; 
    } 
    if (WHAT GOES HERE TO SHOW THAT THE FIELD CAN'T CONTAIN ANY VARIATION OF 'http://?') { 
     message = message + 'That is not a valid address\n'; 
     error = 1; 
    } 


    if (error) { 
     alert(message); 
     return false; 
    } else { 
     return true; 
    } 
} 
+0

您应该在服务器上进行验证。机器人通常会绕过javascript验证 – Andre 2012-08-11 03:21:49

+0

实际上,您应该在客户端验证它以获得更好的用户体验,并在服务器上验证其作为附加验证层的方式,以避免客户端验证被绕过。 – Moon 2012-08-11 03:55:13

回答

0

使用一个正则表达式。

if (/^http:\/\//.test(document.contact_form.email.value)) { 
    message = message + 'That is not a valid address\n'; 
    error = 1; 
} 

我假设你只想要测试对于http://在字符串的开头(只是删除^,如果你想在字符串中的任何测试它)。

+0

谢谢。这是完美的。 – bmp415 2012-08-11 05:49:24

-1

给你的问题输入一个类,也许比我做了什么以外的东西。 给你的ID一个有用的名字。

使编码变得更容易。

function validate() { 

        var inputs = document.querySelectorAll('.inputs'), 
         i = 0; 
        for (; i < inputs.length; i++) { 
         if (inputs[i].value == '') { 
          message = message + ' ' + inputs[i].id + ' is a required field\n'; 
         }; 
        }; 
       }; 
+0

我不确定你们中的一些流氓人是谁,不过,我通过发布上面的代码来提供帮助。首先,海报试图实现的第一件事是清理代码。 – 2012-08-11 12:36:19