Javascript "onClick" событие не работает - PullRequest
2 голосов
/ 30 августа 2011

У меня есть эта строка в моем php-файле:

echo "<input type='button' id='showButton' value='show'  onclick='showOld()'>";

Кнопка отображается, но при нажатии ничего не происходит.

Функция находится во внешнем файле JS.это объявление функции:

Другие «onclick» события и JS-функции на странице работают.

    function showOld()
    {
    alert("njkh");
    var table = document.getElementById("showExp");
    var button = document.getElementById("showButton");
    if (table.style.display == "none")
    {
        table.style.display = "inline";
        button.value = "הסתר ניסויים ישנים";
    }
    else if (table.style.display == "inline")
    {
        table.style.display = "none";
        button.value = "הצג את כל הניסויים";
    }       
    }

консоль говорит: «ReferenceError: showOld не определено»

Ответы [ 4 ]

2 голосов
/ 30 августа 2011

вы должны убедиться, что ваш обновленный код был развернут.

Вы можете проверить источник HTML.

и ваш опубликованный код не имеет проблем.

1 голос
/ 30 августа 2011

Попробуйте проверить наличие исключений:

<input type='button' id='showButton' value='show' onclick='javascript:alert(1);try{showOld()}catch(e){alert(e)}' />

А что именно отображается в консоли javascript (если доступно)?

1 голос
/ 30 августа 2011

Попробуйте открыть консоль firebug (или инструменты chrome dev) и проверьте наличие ошибок скрипта.

Вам следует избегать написания встроенного JavaScript.Это усложняет отладку и поддержку вашей кодовой базы.Я рекомендую вам прочитать следующие статьи о событиях javascript:

Quirksmode - обработчики ранних событий

Quirksmode - традиционная модель регистрации событий

Цитата из статьи:

Хотя встроенная модель регистрации событий является древней и надежной, она имеет один серьезный недостаток.Требуется написать код поведения JavaScript в структурном слое XHTML, где он не принадлежит.

0 голосов
/ 30 августа 2011

Сначала упростите задачу, посмотрите, работает ли следующая функция.

function showOld() {
alert('test');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...