Я хотел бы передать параметр (то есть строку) в функцию Onclick. На данный момент я делаю это:
'<input type="button" onClick="gotoNode(' + result.name + ')" />'
с result.name, например, равным строке «Add». Когда я нажимаю на эту кнопку, у меня появляется ошибка, которая говорит о том, что Add не определен. Поскольку этот вызов функции отлично работает с числовым параметром, я предполагаю, что он как-то связан с символами "" в строке. У кого-нибудь была эта проблема раньше?
javascript
html
JasperTack
источник
источник
Ответы:
Похоже, вы строите элементы DOM из строк. Вам просто нужно добавить несколько цитат вокруг result.name:
Вы действительно должны делать это с правильными методами DOM.
Просто имейте в
result
виду, что, если это цикл или что-то еще, он изменится до того, как событие сработает, и вам потребуется создать дополнительный пузырь области действия, чтобы скрыть изменяющуюся переменную.источник
Несколько проблем для меня касаются использования escape-строки в onClick, и с ростом числа аргументов поддерживать его становится громоздким.
Следующий подход будет иметь один переход - при щелчке - передать управление методу-обработчику, а метод-обработчик, основанный на объекте события, может вычесть событие щелчка и соответствующий объект.
Это также обеспечивает более чистый способ добавления большего количества аргументов и большей гибкости.
На уровне JavaScript:
Преимущество здесь в том, что мы можем иметь столько аргументов (в приведенном выше примере, data-arg1, data-arg2 ....), сколько необходимо.
источник
invoke
не вызывается при нажатии на кнопкуJSON.stringify(obj)
в HTML иJSON.parse(event.target.getAttribute('data-arg'))
в JavaScript-слоеЯ предлагаю даже не использовать
onclick
обработчики HTML , а использовать что-то более распространенное, напримерdocument.getElementById
.HTML:
JavaScript:
источник
onclick
это не функция, это свойство, которому вы должны назначить функцию:....onclick = function() {...};
Я предполагаю, что вы создаете кнопку, используя сам JavaScript. Итак, ошибка в вашем коде заключается в том, что он будет отображаться в этой форме
В этом текущем состоянии
add
будет рассматриваться как идентификатор, такой как переменные или вызовы функций. Вы должны избежать значения, как этоисточник
Это хороший и удобный способ отправить значение или объект.
источник
Попробуй это..
HTML:
JavaScript:
Примечание. Обязательно отправляйте аргументы между знаками '', такими как ('a1') в HTML-коде.
источник
также вы используете серьезный символ ударения (`) в строке
пытаться :
для получения дополнительной информации посетите MDN и Stackoverflow
Поддержка Chrome, Edge, Firefox (Gecko), Opera, Safari, но не поддержка Internet Explorer.
источник
если ваша кнопка генерируется динамически:
Вы можете передавать строковые параметры в функции JavaScript, как показано ниже:
Я передал 3 параметра, где третий является строковым параметром, надеюсь, это поможет.
источник
Отредактировано: если требуется ссылка на глобальный объект (js) в вашем HTML-коде, вы можете попробовать это. [Не используйте кавычки ('или ") вокруг переменной]
Ссылка на скрипку .
Javascript:
HTML:
источник
Несколько параметров:
источник
Для передачи нескольких параметров вы можете привести строку, объединяя ее со значением ASCII, например, для одинарных кавычек мы можем использовать '
источник
Вот решение Jquery, что я использую.
Jquery
HTML
источник
Вы можете передать refrence или строковое значение, просто поместив функцию внутри запятой doube "" asp ниже снимка
источник
Для передачи нескольких параметров вы можете привести строку, связав ее со значением ASCII, например, для одинарных кавычек мы можем использовать
'
этот же параметр вы можете передать
onclick()
событию. В большинстве случаев он работает с каждым браузером.источник
если использовать для генерации набора кнопок с разными параметрами обработчиков. https://www.w3schools.com/js/js_function_closures.asp
если мы делаем:
затем функция foo запускается после каждой страницы обновления.
если мы делаем:
затем для всех кнопок, созданных в цикле, последнее значение параметра «result.name»
источник
если вы используете asp, вы можете использовать javascript:
HTML:
Javascript:
источник
Если вы добавляете кнопку или ссылку динамически и сталкиваетесь с проблемой, то это может помочь. Я решил этим путем.
Я новичок в HTML, JQuery и JS. Поэтому, возможно, мой код не будет оптимизирован или синтаксис, но он работал для меня.
источник
В Razor вы можете передавать параметры динамически: @ Model.UnitNameVMs [i] .UnitNameID
источник
Вы можете использовать это,
это работа для меня
источник
источник
Следующее работает для меня очень хорошо,
источник
Вы можете использовать этот код в методе onclick своей кнопки:
источник