Javascript 表单包含特定文本时的表单错误消息

Javascript 表单包含特定文本时的表单错误消息,javascript,forms,validation,Javascript,Forms,Validation,我有一个表单,其中包含潜在客户的信息字段。垃圾邮件发送者正在地址字段中输入网址。当字段包含“http://”时,我希望有一条错误消息 以下是表格代码: <label>First Name:</label> <input id="first_name" name="first_name" type="text" size="20" /> <label>Last Name:</label> <input id="last_name"

我有一个表单,其中包含潜在客户的信息字段。垃圾邮件发送者正在地址字段中输入网址。当字段包含“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" />

使用正则表达式

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

我假设您只想在字符串开头测试http://代码(如果您想在字符串中的任何位置测试http://代码,只需删除它即可)。

您可以使用
indexOf
函数,如下所示:

if(document.contact_form.address.value.indexOf("http://") !== -1) {
    message = message + "That is not a valid address\n"; 
    error = true;
}
如果在字符串中找不到
indexOf
函数参数中指定的值,则
indexOf
将返回
-1

参考文献:


给你的问题输入一个类,也许是我所做的以外的东西。 给你的身份证起个有用的名字

使编码更容易

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';
                        };
                    };
                };
函数验证(){
var inputs=document.querySelectorAll('.inputs'),
i=0;
对于(;i
您应该在服务器上对此进行验证。机器人通常会绕过javascript验证。实际上,你应该在客户端和服务器上进行验证,以获得更好的用户体验,并作为一种额外的验证层,以防客户端验证被绕过;然而,我通过发布上面的代码来提供帮助。海报想要达到的首要目标是清理代码。
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';
                        };
                    };
                };