Javascript 使用onsubmit=";时文件验证不起作用;返回validate();功能
我的另一个验证工作正常,如果我在其中一个输入上放一个onchange()函数,然后只对图像文件进行验证,那么它似乎可以工作,但是当我将相同的代码粘贴到onsubmit=“return validate()”函数中时,当我用一个错误的值按submit时,它只会提交表单并转到下一页 我猜有一个错误,我在chrome中检查了控制台,但是没有显示任何内容,我不太擅长用javascript处理错误,所以可能我遗漏了一些东西。这是我的代码,输入字段验证工作正常 这里有一个fiddle,但我无法让它工作,所以不确定fiddle是否适合表单,我在浏览器中检查了下面的代码,它在4个输入字段上进行验证,但当too图像不是有效图像时,它只是提交Javascript 使用onsubmit=";时文件验证不起作用;返回validate();功能,javascript,forms,validation,Javascript,Forms,Validation,我的另一个验证工作正常,如果我在其中一个输入上放一个onchange()函数,然后只对图像文件进行验证,那么它似乎可以工作,但是当我将相同的代码粘贴到onsubmit=“return validate()”函数中时,当我用一个错误的值按submit时,它只会提交表单并转到下一页 我猜有一个错误,我在chrome中检查了控制台,但是没有显示任何内容,我不太擅长用javascript处理错误,所以可能我遗漏了一些东西。这是我的代码,输入字段验证工作正常 这里有一个fiddle,但我无法让它工作,所以
您的问题似乎是:
if(document.getElementById('fm-tool_desc').value == "" || document.getElementById('fm-fm-tool_desc').length < 4 || document.getElementById('fm-tool_desc').value > 30){
alert( "The Description should be between 4 and 65,000 characters" );
document.getElementById('fm-tool_desc').focus() ;
return false;
}
if(document.getElementById('fm-tool_desc')。值=“”| | document.getElementById('fm-fm-tool_desc')。长度<4 | | document.getElementById('fm-tool_desc')。值>30){
警报(“说明应在4到65000个字符之间”);
document.getElementById('fm-tool_desc').focus();
返回false;
}
IDfm-fm-tool_desc
不存在。我的控制台给我一个TypeError
,说null不是一个对象
将此更改为fm-tool_desc
,应该可以正常工作
请注意
我已将function validate()
更改为validate=function()
,并在函数定义的末尾添加了分号
提示
您的文件扩展名比较条件非常严格。您不需要分别比较小写和大写。您可以改用
ext.toLowerCase()=='gif'
(.toLowerCase()
将以小写形式给出字符串)。您的问题似乎是:
if(document.getElementById('fm-tool_desc').value == "" || document.getElementById('fm-fm-tool_desc').length < 4 || document.getElementById('fm-tool_desc').value > 30){
alert( "The Description should be between 4 and 65,000 characters" );
document.getElementById('fm-tool_desc').focus() ;
return false;
}
if(document.getElementById('fm-tool_desc')。值=“”| | document.getElementById('fm-fm-tool_desc')。长度<4 | | document.getElementById('fm-tool_desc')。值>30){
警报(“说明应在4到65000个字符之间”);
document.getElementById('fm-tool_desc').focus();
返回false;
}
IDfm-fm-tool_desc
不存在。我的控制台给我一个TypeError
,说null不是一个对象
将此更改为fm-tool_desc
,应该可以正常工作
请注意
我已将function validate()
更改为validate=function()
,并在函数定义的末尾添加了分号
提示
您的文件扩展名比较条件非常严格。您不需要分别比较小写和大写。您可以改用
ext.toLowerCase()=='gif'
(.toLowerCase()
将提供小写字符串)。您的JSFIDLE设置为只运行代码加载,因此您尝试调用的函数不在全局范围内。浏览器抛出错误Uncaught ReferenceError:validate未定义并提交
更改fiddle使用select方法加载JavaScript的方式,将代码放入头部
您的JSFIDLE设置为在加载时运行代码,因此您尝试调用的函数不在全局范围内。浏览器抛出错误Uncaught ReferenceError:validate未定义并提交
更改fiddle使用select方法加载JavaScript的方式,将代码放入头部
在代码的第一行设置断点,然后单步执行函数以查找错误。如果验证功能中存在任何错误,则将提交页面。这是所有浏览器的默认行为。当您输入的值也不正确时,您是否收到“looks good”(外观良好)警报?注意:return不是一种方法,因此return(true)
应该是返回true代码>在代码的第一行设置断点,然后单步执行函数以查找错误。如果验证功能中存在任何错误,则将提交页面。这是所有浏览器的默认行为。当您输入的值也不正确时,您是否收到“looks good”(外观良好)警报?注意:return不是一种方法,因此return(true)
应该是返回true代码>
form {
margin : 0 auto;
text-align : center;
width : 450px;
font-size : 1.2em;
font : 85.5%/1.5 arial, verdana, helvetica, tahoma, sans-serif;
}
form p {
text-align : left;
margin : 0.5em 0;
}
fieldset, #sub {
margin : 1em 0;
padding : 0 1em .5em;
border : 0 none;
border-top : #cccccc 1px solid;
}
#sub {
border : 0 none;
}
legend {
margin : 1em;
padding : 0 1.5em;
color : #003366;
background : transparent;
font-size : 1.1em;
font-weight : bold;
}
legend.p {
text-align : left;
margin : 0.5em 0;
padding : 0;
color : #333333;
font-size : 1.2em;
font-weight : normal;
}
label {
float : left;
width : 110px;
padding : 0 1em;
text-align : right;
}
fieldset input, textarea, select {
width : 250px;
border-top : #555555 1px solid;
border-left : #555555 1px solid;
border-bottom : #cccccc 1px solid;
border-right : #cccccc 1px solid;
padding : 1px;
color : #333333;
margin-bottom : 0.5em;
}
.fm-multi {
margin : 5px 0;
border : 0 none;
width : 100%;
}
.fm-multi input {
width : auto;
margin-bottom : 0;
border : 0 none;
}
.fm-multi label {
display : block;
width : 200px;
padding-left : 5em;
text-align : left;
margin : 0 auto 0.5em;
}
#fm-submit {
clear : both;
text-align : center;
border : #333333 1px solid;
padding : 1px;
background : #555555;
color : #ffffff;
width : 7em;
margin : 1em auto;
}
input:focus, textarea:focus {
background : #efefef;
color : #000000;
}
fieldset .fm-req {
font-weight : bold;
}
if(document.getElementById('fm-tool_desc').value == "" || document.getElementById('fm-fm-tool_desc').length < 4 || document.getElementById('fm-tool_desc').value > 30){
alert( "The Description should be between 4 and 65,000 characters" );
document.getElementById('fm-tool_desc').focus() ;
return false;
}