簡體   English   中英

模擬按鈕點擊javascript

[英]Simulating Button click in javascript

所以我想要做的是當我點擊一個按鈕時,它會將這個點擊事件傳遞給網頁中的另一個元素,或者你可以說它會在另一個元素中創建一個新的點擊事件。 下面是我的代碼,它不起作用,請讓我知道它有什么問題,它看起來很有意義......

<!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>

由於你使用的是jQuery,你可以使用這個調用click onClick處理程序:

$("#datepicker").click()

這與$("#datepicker").trigger("click")

對於一個免費的jQuery版本,請查看SO上的這個答案

要模擬事件,您可以使用trigger JQuery functionnality。

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

解決這個問題的最小變化就是改變

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

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

click()是一個jQuery方法。 此外,用於HTML元素屬性的雙引號與用於JavaScript函數參數的雙引號之間存在沖突。

你的代碼沒有按照你期望的方式工作的原因是因為這一行:

<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已被更改為' s,以便它們不會干擾onclick事件周圍的引號。

2: click()已更改為focus()以激活datepicker日歷。 按下按鈕時。

現在,這解決了你的問題...但我同意其他帖子使用jQuery訪問DOM元素並觸發事件是更好的方法。 由於您已經通過<script src="http://code.jquery.com/jquery-1.8.3.js"></script>為jQuery datapicker插件執行此操作,因此這應該不是問題。

不建議使用內聯事件。

或者你可以使用JQuery為你做的事情:

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

這是你想要實現的不是嗎?

試試這個

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

用這個

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM