Имитация кнопки в javascript

Итак, что я хочу сделать, это когда я нажимаю кнопку, он передает это событие click другому элементу веб-страницы, или вы можете сказать, что он создаст новое событие click в другом элементе. Ниже мой код, он не работает, пожалуйста, дайте мне знать, что с ним не так, это выглядит разумно...

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="#" onclick="location.href='http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css'; return false;" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script>
$(function() {
$( "#datepicker" ).datepicker();
});



</script>
</head>
<body>
<p>Date: <input type="text" id="datepicker" onClick=alert("error") /></p>
<button type="button" value="submit" onClick="document.getElementById("datepicker").click()">submit </button>
</body>
</html>

Ответ 1

Поскольку вы используете jQuery, вы можете использовать этот обработчик onClick, который вызывает click:

$("#datepicker").click()

Это то же самое, что и $("#datepicker").trigger("click").

Для версии, свободной от jQuery, проверьте этот ответ на SO.

Ответ 2

Чтобы смоделировать событие, вы можете использовать trigger функциональность JQuery.

$('#foo').on('click', function() {
      alert($(this).text());
    });
$('#foo').trigger('click');

Ответ 3

Наименьшее изменение для исправления будет заключаться в изменении

onClick="document.getElementById("datepicker").click()">

к

onClick="$('#datepicker').click()">

click() - это метод jQuery. Кроме того, у вас было столкновение между двойными кавычками, используемыми для атрибута элемента HTML, и те, которые используются для аргумента функции JavaScript.

Ответ 4

Или вы можете использовать то, что JQuery alreay сделал для вас:

http://jqueryui.com/datepicker/#icon-trigger

Это то, что вы пытаетесь достичь, не так ли?

Ответ 5

попробуйте это

document.getElementById("datapicker").addEventListener("submit", function())

Ответ 6

Причина, по которой ваш код работает не так, как вы ожидали, потому что эта строка:

<button type="button" value="submit" onClick="document.getElementById("datepicker").click()">submit </button>

следует изменить на:

<button type="button" value="submit" onClick="document.getElementById('datepicker').focus()">submit </button>

Здесь можно заметить две вещи:

1: " вокруг datepicker были изменены на ', чтобы они не мешали кавычкам, окружающим событие onclick.

2: click() был изменен на focus(), чтобы активировать календарь datepicker. Когда кнопка нажата.

Теперь это исправляет вашу проблему... но я согласен с другими сообщениями, что использование jQuery для доступа к элементу DOM и запуск события - лучший способ пойти. Поскольку вы уже делаете это для плагина datapicker jQuery через <script src="http://code.jquery.com/jquery-1.8.3.js"></script>, это не должно быть проблемой.

Не рекомендуются встроенные события.

Ответ 7

Используйте этот

jQuery("input.second").trigger("click");