Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法识别我定义的javascript函数_Javascript - Fatal编程技术网

无法识别我定义的javascript函数

无法识别我定义的javascript函数,javascript,Javascript,我有下面的函数(“submititle”),当按下按钮时会调用它。我有两个单选按钮,由“submittle”动态生成。当用户选择“否”单选按钮时,它会触发一个annonymous函数,该函数也会在其中调用另一个名为“getIndexOfObject”的函数。我的问题是,我一直得到以下错误:“uncaughtreferenceerror:getIndexofObject未定义”,即使我已经定义了它。我不明白如何解决这个问题 var titleArray = []; UploadMyScript.s

我有下面的函数(“submititle”),当按下按钮时会调用它。我有两个单选按钮,由“submittle”动态生成。当用户选择“否”单选按钮时,它会触发一个annonymous函数,该函数也会在其中调用另一个名为“getIndexOfObject”的函数。我的问题是,我一直得到以下错误:“uncaughtreferenceerror:getIndexofObject未定义”,即使我已经定义了它。我不明白如何解决这个问题

var titleArray = [];
UploadMyScript.submitTitle = function(id, callback){
    console.log('button '+id + ' pressed');



    //disable 'append' button.
    document.getElementById(id).disabled = true;

    var title_;
    var titleToAttach = document.getElementById('txtArea_'+id).value;

    if(titleToAttach == ''){
        console.log('Please enter a title for this pdf');
        // un-disable 'append' button
        document.getElementById(id).disabled = false;
    }else{

        /*HANDLE WEBSERVICE CALL HERE FOR EACH TITLE*/

        // Replace spaced in title with %20 (pubmed format for spaces)
        searchterm_ = encodeURI(titleToAttach);
        console.log('searchterm_: '+ searchterm_);

        //AJAX CALL
        var formdata = new FormData();
        formdata.append('titleSearchParam', searchterm_);

        // Create XMLHttprequest
        var xmlhttp = new XMLHttpRequest;
        console.log('pass0000');

        xmlhttp.onreadystatechange = function(){
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200){

                console.log('greetings form inside onreadystate');

                /*RESPONSE TO AJAX CALL HERE*/
                var json_obj = JSON.parse(event.target.responseText);
                console.log('responseText: '+ event.target.responseText);



                var json_obj = JSON.parse(xmlhttp.responseText);
                console.log('responseText: '+ xmlhttp.responseText);

                if(json_obj == null || json_obj.title == null){
                    title_ = titleToAttach;
                    callback(id, title_);

                    console.log('null, title: ' + title_);

                }else{


                    .......

                    var radio_no = document.createElement('input');
                    radio_no.setAttribute('id', 'radio_no_'+id);
                    radio_no.type = 'radio';
                    radio_no.name = 'article';
                    radio_no.value = '0';
                    radio_no.addEventListener('click', function(){
                        // Remove this object from the titleArray
                        var indexOfObject = getIndexofObject(id, titleArray);
                        titleArray.splice(indexOfObject, 1);
                        console.log('titleArray below after splice: ');
                        console.log(titleArray);
                    });

                }
            }
        }
        xmlhttp.open("POST", "upload_myfiles.php");
        xmlhttp.send(formdata);
    }
}


 // Find the Index of a 'title_fileName' object in titleArray
function getIndexOfObject(id, array){
    var id_toMatch = UploadMyScript._('paraHeading_'+id).dataset.uniq_id;

    for(i=0; i< array.length ; i++){
        if(id_toMatch == array[i]['uniq_id']){
            return i;
        }   
    }
}
var titleArray=[];
UploadMyScript.submititle=函数(id,回调){
console.log('按钮'+id+'按下');
//禁用“附加”按钮。
document.getElementById(id).disabled=true;
var title\u0;
var titleToAttach=document.getElementById('txtArea_u'+id.).value;
如果(滴定滴定度=“”){
log('请为此pdf输入标题');
//取消禁用“附加”按钮
document.getElementById(id).disabled=false;
}否则{
/*在此处为每个标题处理WEBSERVICE调用*/
//将标题中的空格替换为%20(用于空格的pubmed格式)
searchterm=编码URI(titleToAttach);
log('searchterm\:'+searchterm\');
//AJAX调用
var formdata=new formdata();
formdata.append('titleSearchParam',searchterm_);
//创建XMLHttprequest
var xmlhttp=新的XMLHttpRequest;
console.log('pass0000');
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
log(“onreadystate内部的问候语表单”);
/*这里是对AJAX调用的响应*/
var json_obj=json.parse(event.target.responseText);
log('responseText:'+event.target.responseText);
var json_obj=json.parse(xmlhttp.responseText);
log('responseText:'+xmlhttp.responseText);
if(json_obj==null | | json_obj.title==null){
title_uux=titleToAttach;
回调(id,title);
console.log('null,title:'+title\);
}否则{
.......
var radio_no=document.createElement('input');
radio_no.setAttribute('id','radio_no_'+id);
radio_no.type=‘radio’;
radio_no.name=‘article’;
radio_no.value='0';
收音机号addEventListener('click',函数(){
//从titleArray中删除此对象
var indexOfObject=getIndexofObject(id,titleArray);
titleArray.拼接(indexOfObject,1);
console.log('拼接后的titleArray:');
控制台日志(titleArray);
});
}
}
}
open(“POST”,“upload_myfiles.php”);
xmlhttp.send(formdata);
}
}
//在titleArray中查找“title\u fileName”对象的索引
函数getIndexOfObject(id,数组){
var-id\u-toMatch=UploadMyScript.\u('paraHeading\u'+id).dataset.uniq\u-id;
对于(i=0;i
错误是正确的,未定义

您正在调用
getIndexofObject
,函数名为
getIndexofObject


O
大写。

错误正确,未定义

您正在调用
getIndexofObject
,函数名为
getIndexofObject


O
是大写的。

FWIW,打字错误有一个明确的原因:)@JamesThorpe,lol good point谢谢你。你说得对。我之所以不认为这是一个拼写错误,是因为在使用括号文本编辑器进行搜索时,它会突出显示拼写错误和正确的方法名称,使我认为它们是相同的。FWIW,拼写错误有一个明确的原因:)@JamesThorpe,lol good point谢谢。你说得对。我之所以不认为这是一个输入错误,是因为在使用括号文本编辑器进行搜索时,它会突出显示输入错误和正确的方法名称,使我认为它们是相同的。我认为您要查找的是这些内容JavaScript是区分大小写的,您输入的getIndexofObject错误,但是它被定义为getIndexofObject我想你要找的就是这些JavaScript是区分大小写的,你输入了错误的getIndexofObject,但是它被定义为getIndexofObject