无法读取未定义的属性'元素' - 在JS控制台中 [英] Cannot Read Property 'Elements' of Undefined - in JS Console

查看:1189
本文介绍了无法读取未定义的属性'元素' - 在JS控制台中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

HTML表单(通过PHP输出)

  $ retVal。=< form id ='importSampleDataForm'name =' importSampleDataForm'onsubmit = \return false \> \\\
;

//编辑表格内容;它包含几十个复选框

$ retVal。= sprintf(< input type ='button'class ='wn_button'onclick ='SaveMotorSkills();'value ='导入选定的'> \\ \
);
$ retVal。=< / form> \\\
;

JavaScript / Ajax

 函数SaveMotorSkills()// {{{
{
// {{{Ajax Header
var httpRequest = CreateHttpRequest();
if(!httpRequest){
DialogFail('AJAX initialization error。',1);
返回false;
} //}}}

var params ='_SaveMotorSkills = 1';
for(i = 0; i< document.importSampleDataForm.elements.length; i ++)// line with error
{
params + =& + document.importSampleDataForm.elements [i] .name +
=+ document.importSampleDataForm.elements [i] .value;
}

//编辑出AJAX设置

httpRequest.send(params);
DialogSave(Saving ...);
} //}}}

请参阅 for 循环。 JS控制台说

Uncaught TypeError:无法读取未定义的属性'元素'



我已经看过这段代码,所以我的眼睛再也看不到它了。有没有其他人看到我不喜欢的东西?我可以添加更多的代码,如果需要的话。

解决方案

尝试

  document.getElementById('importSampleDataForm')。elements.length 

另外,不允许使用嵌套表单,因此也需要解决。


HTML form (outputed thru PHP)

$retVal .= "<form id= 'importSampleDataForm' name = 'importSampleDataForm' onsubmit = \"return false\" >\n";

    // Form content edited out; it contains several dozen checkboxes

$retVal .= sprintf("<input type='button' class='wn_button' onclick='SaveMotorSkills();' value='Import Selected'>\n");
$retVal .= "</form>\n";

JavaScript / Ajax

function SaveMotorSkills() // {{{
{
    // {{{ Ajax Header
    var httpRequest = CreateHttpRequest();
    if (!httpRequest) { 
        DialogFail('AJAX initialization error. ', 1 );
        return false; 
    } // }}}

    var params = '_SaveMotorSkills=1';
    for(i=0; i<document.importSampleDataForm.elements.length; i++) // line with error
    {
        params += "&" + document.importSampleDataForm.elements[i].name + 
            "=" + document.importSampleDataForm.elements[i].value ;
    }

    // edit out AJAX setup

    httpRequest.send(params);
    DialogSave("Saving...");
} // }}}

See "Line With Error Above" in for loop. JS Console says

Uncaught TypeError: Cannot read property 'elements' of undefined

I have looked at this code so much my eyes can't take it anymore. Does anyone else see anything I don't? I can add more code if needed.

解决方案

Try

document.getElementById('importSampleDataForm').elements.length

Also, nested forms are not allowed, so that also needs to be resolved.

这篇关于无法读取未定义的属性'元素' - 在JS控制台中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆