Javascript 未捕获引用错误:未定义onsubmit函数

Javascript 未捕获引用错误:未定义onsubmit函数,javascript,jquery,html,Javascript,Jquery,Html,好吧,这是一样的,但不完全一样。我有一个函数和变量需要从document.ready函数中移出 这是我的错误 未捕获引用错误:未定义ValidateFile 我已经研究过这个问题的其他解决方案,但没有一个对我有效 如果我将函数ValidateFile()移动到head部分,则会得到一个未定义类型的错误 请问我错过了什么? 这是我的密码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/T

好吧,这是一样的,但不完全一样。我有一个函数和变量需要从document.ready函数中移出

这是我的错误

未捕获引用错误:未定义ValidateFile 我已经研究过这个问题的其他解决方案,但没有一个对我有效

如果我将函数ValidateFile()移动到head部分,则会得到一个未定义类型的错误

请问我错过了什么? 这是我的密码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
<title>Choose a file to upload</title>
</head>
<body>

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>

<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/select2-bootstrap-css/1.4.6/select2-bootstrap.min.css">

<script type="text/javascript">

$(document).ready(function(){

    var file;
    var name; 
    var size;
    var type;

 window.addEventListener('message',function(event) {
    //if(event.origin !== 'http://demo.dev) return;
        alert('message received:  ' + event.data,event);
        event.source.postMessage('hola back !',event.origin);
    },false);
$('progress').hide();
$('#pleasewait').hide();

function ValidateFile(){
    var formData = new FormData($('form')[0]);
    var str=type.substring(0,5);
    if (str!='image'){
        alert( 'the file '+ name +' is not a valid image, Please upload only image files, thank you. The management!');
    }else{
        //alert(' I got the file : ' + formData + ' file: ' +file+' name: '+name+' size: '+size+' type: '+type );
        $('progress').show();
        $('#pleasewait').show();
    }
}

$(':file').change(function(){
    file = this.files[0];
    name = file.name;
    size = file.size;
    type = file.type;
}); 

});

</script>
<p><h1>Choose a file to upload</h1></p>
<form name="UploadForm" enctype="multipart/form-data" class="form" action="/api/v2/process_images" method="post" onsubmit="javascript: return ValidateFile();" >
File: <input type="file" name="file1" />


<input type="submit" value="upload" id="upload_image"/>
</form>
<progress ></progress>
        &nbsp;&nbsp;
    <h4 id='pleasewait'>Please wait a few seconds. Uploading and spliting your image into different sizes</h4>


</body>
</html>

选择要上载的文件
$(文档).ready(函数(){
var文件;
变量名;
变量大小;
var类型;
window.addEventListener('message',函数(事件){
//如果(event.origin!=='http://demo.dev)返回;
警报(“收到的消息:”+事件、数据、事件);
event.source.postMessage('hola back!',event.origin);
},假);
$('progress').hide();
$('#plessewait').hide();
函数ValidateFile(){
var formData=新的formData($('form')[0]);
var str=类型子字符串(0,5);
如果(str!='image'){
警报('文件'+name+'不是有效的图像,请仅上载图像文件,谢谢。管理!');
}否则{
//警报('I got the file:'+formData+'文件:'+file+'名称:'+name+'大小:'+size+'类型:'+type));
$('progress').show();
$('plessewait').show();
}
}
$(':file').change(函数(){
file=this.files[0];
name=file.name;
size=file.size;
type=file.type;
}); 
});
选择要上载的文件

文件: 请稍等几秒钟。上载图像并将其拆分为不同大小
您的函数是在
$(document).ready()回调的范围内定义的,从外部看不到。在
$(document.ready()
范围之外定义函数,仅从内部调用


将您的
ValidateFile()
放在文档的外侧。ready将起作用

您的函数在
$(文档)回调的范围内定义。ready()
回调无法从外部看到。在
$(document.ready()
范围之外定义函数,仅从内部调用

将您的
ValidateFile()
放在文档的外侧。准备就绪将起作用

试试看

<script type="text/javascript">
   var file;
    var name; 
    var size;
    var type;
function ValidateFile(){
    var formData = new FormData($('form')[0]);
    var str=type.substring(0,5);
    if (str!='image'){
        alert( 'the file '+ name +' is not a valid image, Please upload only image files, thank you. The management!');
    }else{
        //alert(' I got the file : ' + formData + ' file: ' +file+' name: '+name+' size: '+size+' type: '+type );
        $('progress').show();
        $('#pleasewait').show();
    }
}

$(document).ready(function(){



 window.addEventListener('message',function(event) {
    //if(event.origin !== 'http://demo.dev) return;
        alert('message received:  ' + event.data,event);
        event.source.postMessage('hola back !',event.origin);
    },false);
$('progress').hide();
$('#pleasewait').hide();



$(':file').change(function(){
    file = this.files[0];
    name = file.name;
    size = file.size;
    type = file.type;
}); 

});

</script>

var文件;
变量名;
变量大小;
var类型;
函数ValidateFile(){
var formData=新的formData($('form')[0]);
var str=类型子字符串(0,5);
如果(str!='image'){
警报('文件'+name+'不是有效的图像,请仅上载图像文件,谢谢。管理!');
}否则{
//警报('I got the file:'+formData+'文件:'+file+'名称:'+name+'大小:'+size+'类型:'+type));
$('progress').show();
$('plessewait').show();
}
}
$(文档).ready(函数(){
window.addEventListener('message',函数(事件){
//如果(event.origin!=='http://demo.dev)返回;
警报(“收到的消息:”+事件、数据、事件);
event.source.postMessage('hola back!',event.origin);
},假);
$('progress').hide();
$('#plessewait').hide();
$(':file').change(函数(){
file=this.files[0];
name=file.name;
size=file.size;
type=file.type;
}); 
});
试试看


var文件;
变量名;
变量大小;
var类型;
函数ValidateFile(){
var formData=新的formData($('form')[0]);
var str=类型子字符串(0,5);
如果(str!='image'){
警报('文件'+name+'不是有效的图像,请仅上载图像文件,谢谢。管理!');
}否则{
//警报('I got the file:'+formData+'文件:'+file+'名称:'+name+'大小:'+size+'类型:'+type));
$('progress').show();
$('plessewait').show();
}
}
$(文档).ready(函数(){
window.addEventListener('message',函数(事件){
//如果(event.origin!=='http://demo.dev)返回;
警报(“收到的消息:”+事件、数据、事件);
event.source.postMessage('hola back!',event.origin);
},假);
$('progress').hide();
$('#plessewait').hide();
$(':file').change(函数(){
file=this.files[0];
name=file.name;
size=file.size;
type=file.type;
}); 
});

将该功能移到
就绪
之外,使其公开。现在它是ready回调的私有函数。可能是函数的重复,请将函数移到
ready
之外以使其公开。现在它是ready回调的私有部分。可能是重复的,我试过了,我得到了。未捕获引用错误:类型未定义。我尝试了,但得到了。未捕获引用错误:类型未定义谢谢,但是,我尝试了,我得到了。未捕获引用错误:类型未定义未编辑请参见将变量置于文档就绪变量名称之外;变量大小;var类型;成功了。非常感谢你。当有人指出这一点时,你也很容易:)谢谢你,但是,我试过了,我成功了。未捕获引用错误:类型未定义未编辑请参见将变量置于文档就绪变量名称之外;变量大小;var类型;成功了。非常感谢你。当有人指出这一点时,你也很容易:)