35

だから私がやりたいのは、ボタンをクリックすると、このクリックイベントがWebページの別の要素に渡されるか、別の要素に新しいクリックイベントが作成されるということです。以下は私のコードです。動作しません。何が問題なのか教えてください。意味があるように見えます...

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<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>
4

7 に答える 7

54

jQueryを使用しているので、次を呼び出すこのonClickハンドラーを使用できますclick

$("#datepicker").click()

これはと同じ$("#datepicker").trigger("click")です。

jQueryを使用しないバージョンについては、SOでこの回答を確認してください。

于 2013-01-28T19:11:24.407 に答える
10

triggerイベントをシミュレートするには、 JQueryの機能を使用できます。

$('#foo').on('click', function() {
      alert($(this).text());
    });
$('#foo').trigger('click');
于 2013-01-28T19:11:23.423 に答える
9

これを修正するための最小の変更は、変更することです

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

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

click()jQueryメソッドです。また、HTML 要素の属性に使用される二重引用符と、JavaScript 関数の引数に使用される二重引用符の間に衝突がありました。

于 2013-01-28T19:12:53.583 に答える
2

コードが期待どおりに動作しない理由は、次の行が原因です。

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

次のように変更する必要があります。

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

ここで注目すべき点が 2 つあります。

1:"前後の s は sdatepickerに変更されているため、イベント'を囲む引用符を妨げません。onclick

2:は、日付ピッカー カレンダーを有効にするようにclick()変更されました。focus()ボタンが押されたとき。

さて、これで問題は解決します...しかし、jQueryを使用してDOM要素にアクセスし、イベントをトリガーすることがより良い方法であるという他の投稿に同意します。を介してjQuery datapickerプラグインに対してすでにこれを行っているため<script src="http://code.jquery.com/jquery-1.8.3.js"></script>、これは問題になりません。

インライン イベントは推奨されません。

于 2013-01-28T19:31:07.073 に答える
1

または、すでに作成されている JQuery を使用することもできます。

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

それはあなたが達成しようとしていることですよね?

于 2013-01-28T19:19:26.010 に答える
0

これを試して

document.getElementById("datapicker").addEventListener("submit", function())
于 2013-01-28T19:22:28.763 に答える