Имитировать нажатие кнопки с помощью JavaScript с использованием значения кнопки, а не идентификатора?

99
12

Я хочу Имитировать нажатие кнопки с помощью JavaScript с использованием значения кнопки, а не идентификатора.

Вот код, используя идентификатор кнопки

<input type="checkbox" onClick="document.getElementById('theSubmitButton').click();">Check the box to simulate a button click
<br>
<input type="button" name="theSubmitButton" id="theSubmitButton" value="Button" onClick="alert('The button was clicked.');">

Я пробовал getElementByValue ("Button"), но это не сработало.

спросил(а) 2021-01-27T16:55:43+03:00 4 месяца, 3 недели назад
1
Решение
99

Вот как я буду делать это с помощью jQuery:

http://jsfiddle.net/skilldrick/R27rQ/1/


$('input[type=checkbox]').click(function () {
$('input[value=Button]').click();
});

но, как сказал Сенад, идентификаторы гораздо лучше подходят для такого типа вещей.

ответил(а) 2021-01-27T16:55:43+03:00 4 месяца, 3 недели назад
63

    function clickButton(val)
{
var buttons = document.getElementsByTagName('input');
for(var i = 0; i < buttons.length; i++)
{
if(buttons[i].type == 'button' && buttons[i].value == val)
{
buttons[i].click();
break; //this will exit for loop, but if you want to click every button with the value button then comment this line
}
}
}

это решение...

HTML

<input type="checkbox" onClick="clickButton('Button');">Check the box to simulate a button click

Но лучше всего найти элемент по его идентификатору

ответил(а) 2021-01-27T16:55:43+03:00 4 месяца, 3 недели назад
64

<script type="text/javascript">
function getButtonByValue(value) {
var els = document.getElementsByTagName('input');

for (var i = 0, length = els.length; i < length; i++) {
var el = els[i];

if (el.type.toLowerCase() == 'button' && el.value.toLowerCase() == value.toLowerCase()) {
return el;
break;
}
}
}
</script>
<input type="checkbox" onClick="getButtonByValue('Button').click();">Check the box to simulate a button click
<br>
<input type="button" name="theSubmitButton" id="theSubmitButton" value="Button" onClick="alert('The button was clicked.');">

Пример jsfiddle

ответил(а) 2021-01-27T16:55:43+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема