我有一个包含潜在客户信息字段的表单。垃圾邮件发送者正在地址字段中输入网址。当字段包含“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 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 :(得分:0)
使用正则表达式。
if (/^http:\/\//.test(document.contact_form.email.value)) {
message = message + 'That is not a valid address\n';
error = 1;
}
我假设您只想在字符串的开头测试http://(如果您想在字符串中的任何位置测试它,只需删除^
。)
答案 1 :(得分:0)
您可以使用indexOf
功能,如下所示:
if(document.contact_form.address.value.indexOf("http://") !== -1) {
message = message + "That is not a valid address\n";
error = true;
}
如果在字符串中找不到indexOf
函数参数中指定的值, -1
将返回indexOf
。
<强>参考文献:强>
答案 2 :(得分:-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';
};
};
};