当javascript函数返回false时,为什么表单仍然提交?
以下是我的Javascript formvalidator函数:当javascript函数返回false时,为什么表单仍然提交?,javascript,html,validation,Javascript,Html,Validation,以下是我的Javascript formvalidator函数: 函数companyName(){ var companyName=document.forms[“SRinfo”][“companyName”].value; 如果(公司名称==“”){ 返回false; }否则{ 返回true; } } 函数companyAdd(){ var companyad1=document.forms[“SRinfo”][“companyad1”].value; 如果(companyAdd1==“”){
函数companyName(){
var companyName=document.forms[“SRinfo”][“companyName”].value;
如果(公司名称==“”){
返回false;
}否则{
返回true;
}
}
函数companyAdd(){
var companyad1=document.forms[“SRinfo”][“companyad1”].value;
如果(companyAdd1==“”){
返回false;
}否则{
返回true;
}
}
函数companyCity(){
var companyCity=document.forms[“SRinfo”][“companyCity”].value;
如果(公司城市==“”){
返回false;
}否则{
返回true;
}
}
函数companyZip(){
var companyZip=document.forms[“SRinfo”][“companyZip”].value;
如果(companyZip==“”){
返回false;
}否则{
返回true;
}
}
函数enteredByName(){
var enteredByName=document.forms[“SRinfo”][“enteredByName”].value;
如果(输入的ByName==“”){
返回false;
}否则{
返回true;
}
}
函数dayPhArea(){
var dayPhArea=document.forms[“SRinfo”][“dayPhArea”].value;
如果(dayPhArea==“”){
返回false;
}
}
函数dayphppre(){
var dayPhPre=document.forms[“SRinfo”][“dayPhPre”].value;
如果(dayphppre==“”){
返回false;
}否则{
返回true;
}
}
函数dayPhSub(){
var dayPhSub=document.forms[“SRinfo”][“dayPhSub”].value;
如果(companyAdd1==“”){
返回false;
}否则{
返回true;
}
}
函数validateForm(){
if(companyName()&&companyAdd()&&companyCity()&&companyZip()&&enteredByName()&&dayPhArea()&&dayphppre()&&dayPhSub()){
返回true;
}否则{
window.alert(“请确保所有必填字段都已填写。”);
document.getElementByID(“companyName”).className=“reqInvalid”;
companyName.focus();
返回false;
}
}
以下是我的所有包含项,以防一个包含项与另一个包含项冲突(我使用jquery作为它们的toggle()):
这是我的表单标记,其中包含提交时返回的函数:
验证工作非常完美,我测试了所有字段,并不断收到相应的警报,但是在警报发出后,表单将提交到mysql并作为电子邮件发送。这是我提交帖子数据的代码
if($\u服务器['REQUEST\u METHOD']=='POST'){
//在这里,我使用php mail()提交Mysql数据库和电子邮件表单提交
在我看来,这条线可能会爆炸:
companyName.focus();
我看到的companyName
的唯一定义是函数。不能对函数调用focus
这会导致
返回false
。在我看来,这一行可能会被破坏:
companyName.focus();
我看到的companyName
的唯一定义是函数。不能对函数调用focus
这会使
返回false
永远无法到达。我会注释掉验证部分中的所有代码,然后简单地返回false。如果这会阻止表单发布,则执行验证的实际代码中存在错误。每次添加一个部分,直到找到错误为止
我的猜测与James建议您调用函数“companyName”的焦点相同。这上面的一行似乎试图从文档中获取同名元素,但您没有将其分配给变量,以便您可以调用它的焦点。我将注释掉验证部分中的所有代码并简化y返回false。如果这阻止表单过帐,则执行验证的实际代码中存在错误。每次添加一个部分,直到找到错误为止
我的猜测与James建议您调用函数“companyName”的焦点相同。这上面的一行似乎试图从文档中获取同名元素,但您没有将其分配给变量以便可以调用焦点。您应该验证表单服务器端,以验证m服务器端tooGood调用,该行是我以前版本的formValidator遗留下来的,第一个版本确实有效,但我的老板不喜欢多个警报。当我删除该行时,它不起作用,但随后我同时删除了
document.getElementByID(“companyName”).className=“reqInvalid”
和companyName.focus();
而且它工作得很好。谢谢!打得好,那一行是我以前版本的formValidator遗留下来的,第一个版本可以工作,但我的老板不喜欢多个警报。当我删除那一行时,它不起作用,但随后我同时删除了document.getElementByID(“companyName”)。className=“reqInvalid”;
&companyName.focus();
它工作得很好。谢谢!