Intereting Posts
суммирование активной записи в кодеригнере Crypto-Js отличается от mcrypt переменные сеанса не установлены в первый раз Унаследованные атрибуты Laravel 4 равны нулю Класс 'MyChat \ Chat' не найден в C: \ wamp \ www \ bin \ chat-server.php Запретить вход в браузер кнопки «Назад» после выхода в Laravel 5 Простая модификация темы OpenCart Проверка даты, которая выпадает на рабочий день или на выходные? Должен ли я использовать несколько классов для игры? Номер страницы с разбивкой по страницам Facebook API. Как получить изображение профиля пользователя Facebook через API Facebook (не требуя от пользователя «Разрешить» приложение) Как я могу использовать PHP для перенаправления пользователей IE на определенную страницу? Как использовать версию PHP для MAMP вместо значения по умолчанию для OSX Как получить все последние вставленные идентификаторы строк в mysql-php? как сохранить флажок после обновления страницы

Как получить значение кнопки с помощью Javascript

Я пытаюсь выяснить, как получить значение кнопки с помощью JavaScript. Существует несколько кнопок, сгенерированных с использованием оператора while в php-коде, поэтому name и id одинаковы для всех них. Единственное различие между ними – это значение.

Часть моего PHP-кода:

 while($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td align=\"center\"><input type=\"button\" id=\"details\" name=\"details\" value=\"" . $row['mcn'] . "\" onClick=\"MCNdetails()\"></td>"; echo "</tr>"; } 

То, что я пытаюсь достичь, заключается в том, что при нажатии этой кнопки на эти данные записей отображается предупреждение JavaScript.

(FYI – «Faker» – это имя формы, в которое эта таблица входит.)

Мой код JavaScript:

 function MCNdetails() { var buttonDetails = document.Faker.details; var buttonValue = buttonDetails.value; if (buttonValue === "2700-2057" ) { alert ("Details are here"); return; } else { alert ("No Dice " + buttonValue); return; } } 

У меня ок. До 300 записей. Когда я нажимаю на ЛЮБОЙ из кнопок, я всегда получаю оператор else. Я попытался получить элемент по id следующим образом:

 function MCNdetails() { var buttonDetails = document.getElementById("details"); var buttonValue = buttonDetails.value; if (buttonValue === "2700-2057" ) { alert ("Details are here"); return; } else { alert ("No Dice " + buttonValue); return; } } 

Но это всегда возвращало значение первой кнопки, независимо от того, на какой из них я нажал.

Я выполнил поиск в Google, а также выполнил поиск на этом сайте, и я не могу найти тот же самый сценарий, где создаются кнопки.

Любая помощь или указатели будут оценены. Спасибо за ваше время 🙂

попробуйте что-нибудь вроде

 <script type="text/javascript"> function getVal(value) { alert(value); } </script> <input type="button" value="Add" onclick="getVal(this.value)"> 

Обратите внимание, что использование одного и того же идентификатора для нескольких элементов является недопустимым html, хотя большинство (все?) Браузеров, как правило, не беспокоятся об этом, и они все равно будут отображать страницу довольно счастливо. Вот почему, когда вы пытались использовать document.getElementById("details") он всегда давал вам первую кнопку с этим идентификатором – как браузер знал бы, что вы имели в виду?

Сказав это, если вы передадите this в вызове функции при нажатии:

 onClick=\"MCNdetails(this)\" 

…, который даст функции прямой ссылке на конкретную кнопку, которая была нажата. Итак, тогда:

 function MCNdetails(btn) { var buttonValue = btn.value; // etc } 

В этом случае вашим кнопкам действительно не нужны идентификаторы. Но если вы сохраните идентификаторы, вы должны найти способ сделать их уникальными (например, добавить порядковый номер в конец каждого).