Событие Onclick не распознает функцию - PullRequest
2 голосов
/ 26 марта 2019

Использование Javascript.Я получаю сообщение об ошибке при нажатии кнопки (нажатием кнопки).Ошибка:

Uncaught TypeError: accept is not a function at HTMLInputElement.onclick

Вот HTML-код кнопки (и ее соседа):

<input type="button"  value="Accept Offer" onclick="accept()" />
<input type="button"  value="Cancel" onclick="cancelAccept()" />

Кнопка Cancel работает нормально.

Вот функция accept JS:

function accept() {
    //check that user logged in
    api.me()
    .then( (res) => {   //logged in, accept offer
        acceptOffer(res.user);
    }, (err) => {
        console.log("error:",err);
        alert("Authentication error. Please logout and in again");
        cancel();
    });
}

Javascript импортируется (?) В тег head в верхней части HTML-страницы.api.me() - это звонок в библиотеку.

Ответы [ 4 ]

3 голосов
/ 26 марта 2019

Кажется, имя accept вызывает проблемы.См. this jsfiddle .

Переименуйте вашу функцию и поместите ее в глобальную область.

2 голосов
/ 26 марта 2019

Замените ввод тегом кнопки, как в этой демонстрации

function accept() {  
    //check that user logged in
    api.me()
    .then( (res) => {   //logged in, accept offer
        acceptOffer(res.user);
    }, (err) => {
        console.log("error:",err);
        alert("Authentication error. Please logout and in again");
        cancel();
    });
} 
 
<button onclick="accept()">Accept Offer</button>
<button onclick="cancelAccept()">Cancel</button>
2 голосов
/ 26 марта 2019

Пожалуйста, попробуйте изменить имя функции, так как JS может неверно истолковать (это атрибут html).

0 голосов
/ 26 марта 2019

Приведенный ниже пример выдаст сообщение об ошибке с жалобой на то, что accept не является функцией.

function accept(){
  console.log("I accept");
  alert(document.getElementsByTagName("input")[0].accept);
}

function cancelAccept(){
   console.log("I cancel");
}

console.log(accept);
<input type="button"  value="Accept Offer" onclick="accept()"  accept="text/html,image/gif" />
<input type="button"  value="Cancel" onclick="cancelAccept()" />

Что произошло, так как элемент input имеет свойство accept, которое создало конфликт для пользовательской функции accept ().

Функция делит имя с уже существующим свойствомSection

Иногда при создании класса у вас может быть свойство и функция с тем же именем. При вызове функции компилятор думает что функция перестает существовать.

Источник: здесь .

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