Javascript 表单验证错误。表单是否允许空字段?
我有一个简单的联系方式,包括姓名、电子邮件、电话号码和信息。 我已经使用javascript来验证它并给出反馈。所有其他函数都能正常工作,如果输入框包含无效字符或值,则将其变成红色。但是,当我对所有框执行状态检查时,即使只有一个输入中有值,表单也会提交 这是我的jSJavascript 表单验证错误。表单是否允许空字段?,javascript,arrays,forms,validation,loops,Javascript,Arrays,Forms,Validation,Loops,我有一个简单的联系方式,包括姓名、电子邮件、电话号码和信息。 我已经使用javascript来验证它并给出反馈。所有其他函数都能正常工作,如果输入框包含无效字符或值,则将其变成红色。但是,当我对所有框执行状态检查时,即使只有一个输入中有值,表单也会提交 这是我的jS function submit_it() { var name = document.getElementById("username"); var email = document.getElementById
function submit_it() {
var name = document.getElementById("username");
var email = document.getElementById("email");
var num = document.getElementById("racenum");
var messagecontent = document.getElementById("messagecontent");
var inputs = [];
inputs[0] = name;
inputs[1] = email;
inputs[2] = num;
inputs[3] = messagecontent;
for(i = 0; i < inputs.length; i++) // Loop through input elements.
{
// Perform presence check.
if(inputs[i].value=="" || messagecontent.value == 'null') //If check fails
{
alert("There are errors in your message form."); // Error
name.focus(); // Return cursor to first input element.
break;
return;
}
else // If Presence check passes
{
$.post("sndmsg.php", { com: "" , pg: ""});
alert("Your message has been sent.");
for(i = 0; i < inputs.length; i++)
{
inputs[i].value = '';
inputs[i].style.backgroundColor = '#fff';
}
break;
console.log(logit);
return;
}
}
}
函数submit\u it(){
var name=document.getElementById(“用户名”);
var email=document.getElementById(“电子邮件”);
var num=document.getElementById(“racenum”);
var messagecontent=document.getElementById(“messagecontent”);
var输入=[];
输入[0]=名称;
输入[1]=电子邮件;
输入[2]=num;
输入[3]=消息内容;
对于(i=0;i
我假设这是循环或If语句的问题,但我不明白为什么它没有发现错误!
任何帮助都将不胜感激 使用以下命令:
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g, '');
};
}
参考:
在代码中执行以下操作:
var val = inputs[i].value;
if(val.trim() == "" || messagecontent.value == 'null'){// stuff}
你的循环有缺陷。实际上,您正试图为每个正确填写的字段发布一次表单。。此外,您永远不会到达return语句,因为break语句将在该点退出for循环 您应该在for循环完成后移动POST调用,并确保仅在所有字段都正确填充的情况下调用它。类似这样的结构(伪代码): 在if(inputs[i].value==“”| | messagecontent.value=='null')条件下,您是否可以尝试对中断进行注释;声明和检查
for...
{
if field check fails
{
alert, highlight whetever
return; // return from whole function
}
}
// we come here only if all fields checked ok
post data