[英]Detect type of submit(if it was by enter key or button click)
我有以下代碼:
<head>
<script language="javascript">
function subimiti(event){
alert("Tipo do submit: "+event);
}
</script>
</head>
<body>
<form id="f1" name="form1" onsubmit="subimiti(event)" action="http://www.google.com">
<input type="text" id="meuId" value="Teste"/>
<input id="butao" type="submit" value="Subimeta u fórmi trem bão!!"/>
</form>
在我的JavaScript函數中,我希望我可以檢測到導致表單提交的事件,如果是通過在我的文本字段上單擊Enter還是通過單擊按鈕。
因為有一個提交按鈕時keypress事件會觸發click事件,所以我能想到的唯一解決方法是改用type = button。
純JavaScript( 小提琴 ):
<form id="f1" name="form1" action="" onsubmit="subimiti(this)" method="POST">
<input type="text" id="meuId" value="Test" onkeypress="setEvent(event)"/>
<input id="butao" type="button" onclick="setEvent(event)" value="Subimeta u formi trem bao!!"/>
</form>
function subimiti(form)
{
event.preventDefault();
alert(form.getAttribute('event'));
}
function setEvent(event)
{
if(event.type == 'click')
{
document.form1.setAttribute('event','click');
subimiti(document.form1);
}
else if (event.keyCode == 13)
{
document.form1.setAttribute('event','keypress');
}
}
使用jQuery(我認為更簡潔的代碼):
$(function(){
$('form').submit(function(){
alert($(this).attr('event'));
});
$("input#butao").on('click', function(e) {
$("form").attr("event", "click").submit();
});
$("input").on('keypress', function(e) {
if (e.which == 13)
{
$("form").attr("event", "keypress");
}
});
});
有一個僅用於butao的單擊偵聽器,並為任何輸入輸入偵聽器。
<form id="f1" name="form1" action="">
<input type="text" id="meuId" value="Teste"/>
<input id="butao" type="button" value="Subimeta u formi trem bao!!"/>
</form>
小提琴 (在小提琴上添加了preventDefault,因此您無需實際提交即可查看結果)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.