[英]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>
要模擬事件,您可以使用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插件執行此操作,因此這應該不是問題。
不建議使用內聯事件。
試試這個
document.getElementById("datapicker").addEventListener("submit", function())
用這個
jQuery("input.second").trigger("click");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.