javascript - 无法读取未定义的属性 'Elements' - 在 JS 控制台中

标签 javascript html ajax forms

HTML 表单(通过 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...");
} // }}}

请参阅 for 循环中的“上面有错误的行”。 JS 控制台说

未捕获类型错误:无法读取未定义的属性“元素”

我已经看了太多这段代码了,我的眼睛已经无法忍受了。还有其他人看到我看不到的东西吗?如果需要,我可以添加更多代码。

最佳答案

尝试

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

此外,nested forms are not allowed ,所以这也需要解决。

关于javascript - 无法读取未定义的属性 'Elements' - 在 JS 控制台中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19600288/

相关文章:

javascript - Angular 和语义标记/关注点分离

jquery - 需要帮助在 JSON/AJAX 帖子上实现 Deferred

javascript - 登录后隐藏登录按钮,反之亦然

javascript - AngularJS - 为什么选择下拉菜单没有 $event on change

html - IE 10 图像不显示

php - 使用 JQuery 实时更新?

javascript - Rails 3触发AJAX提交单选按钮更改正在渲染html响应

javascript - 下拉列表未使用 ajax 和 Controller 操作填充

javascript - Jquery表单与recaptcha序列化问题?

jquery - 隐藏与其关联的文本框字段和标签