Ошибка при изменении формы действия - PullRequest
1 голос
/ 08 июня 2010

Я изменяю действие формы:

window.onload = function() {
    document.getElementById('pdf').onclick = addExportEvent;
    document.getElementById('xls').onclick = addExportEvent;
    document.getElementById('xml').onclick = addExportEvent;
    document.getElementById('csv').onclick = addExportEvent;
}

function addExportEvent() {
    data = grid.getAllGridData();
    document.getElementById('dados').setAttribute('value', encodeURIComponent(JSON.stringify(data)));

    formulario = document.getElementById('formulario'); // Line 55!
    formulario.action = 'php/' + this.id + '.php';
    formulario.submit();

    return false;
}

Но это не работает с Internet ExplorerВозвращает следующую ошибку:

Message: The object doesn't support the property or method.
Line: 55
Character: 2
Code: 0
URI: http://www.site.com/javascript/scripts.js

1 Ответ

1 голос
/ 08 июня 2010

Я думаю, что комментарий Энди Э. ударил его по голове.Вы присваиваете правильный элемент, но не объявляете его, используя var, что делает IE затычкой и удушением, а также всевозможными плохими вещами.Другие браузеры справляются с этим просто отлично.Таким образом, вы пытаетесь получить доступ к formulario вместо того, чтобы объявить его, что означает, что он никогда не получит значение id: formulario

function addExportEvent() {
    var data = grid.getAllGridData();
    document.getElementById('dados').setAttribute('value', encodeURIComponent(JSON.stringify(data)));

    var formulario = document.getElementById('formulario'); // Line 55!
    formulario.action = 'php/' + this.id + '.php';
    formulario.submit();

    return false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...