Имитировать нажатие кнопки с помощью JavaScript, используя значение кнопки, а не ее идентификатор? - PullRequest
4 голосов
/ 19 августа 2011

Я хочу смоделировать нажатие кнопки через 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'), но он не работал.

Ответы [ 3 ]

4 голосов
/ 19 августа 2011

Вот как я это сделаю, используя jQuery:

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

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

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

1 голос
/ 19 августа 2011
<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 пример

1 голос
/ 19 августа 2011
    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

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

...