[英]Two button click events in Jquery
HTML
<input type="Submit" value="Add" id="btn1"/>
<input type="Submit" value="Add2" id="btn2"/>
查詢
$("#btn1").click(function () {
$("[id*=btn2]").click();
});
控制器
[httpPost]
Public ActionResult MyAction(){
//some code
return view();
}
在這里,我如何區分是直接點擊了btn2
還是來自btn1
?
保留一個隱藏的 html 標簽以進行跟蹤。 在這里,從@ViewBag.hdnIsButton1Clicked 中獲取[HtpGet]/視圖的初始請求的值。
<input type="hidden" value="@ViewBag.hdnIsButton1Clicked" id="hdnIsButton1Clicked" name="hdnIsButton1Clicked" />
設置隱藏字段的值,並防止提交操作的默認行為。 查詢
$("#btn1").click(function (event) {
$("#hdnIsButton1Clicked").val("1");
event.preventDefault()
$("[id*=btn2]").click();
})
添加參數獲取隱藏值並再次設置viewbag數據為0Controller
[httpPost]
Public ActionResult MyAction(string hdnIsButton1Clicked){
if(hdnIsButton1Clicked == "1")
{
//user clicked button 1
}
@ViewBag.hdnIsButton1Clicked = "0";
return view();
}
注意 - 您可以設置隱藏值 true/false。 我已經給出了解決它的想法。
使用這樣的代碼:將按鈕從提交更改為按鈕。 現在 HTML 將如下所示:
<form id="myForm">
....
....
<input type="button" value="Add" id="btn1"/>
<input type="button" value="Add2" id="btn2"/>
</form>
然后腳本:
var btn1_cliked = false;
$("#btn1").click(function () {
$(this).attr("name","btn1");
btn1_cliked = true;
$("[id*=btn2]").click();
});
$("#btn2").click(function () {
if(btn1_clicked)
$("button[name='btn1']").removeAttr("name","btn1");
$(this).attr("name","btn2");
$("#myForm").submit();
});
在控制器中:
Check if $_POST['btn1'] //then btn1 clicked
else // then btn2 clicked
嘗試這個
var flag = 0; $("#btn1").click(function() { flag = 1; $("[id*=btn2]").click(); }); $("#btn2").click(function(e) { if (flag == 1) { flag = 0; alert("from btn1"); } else { alert("from btn2"); } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="Submit" value="Add" id="btn1" /> <input type="Submit" value="Add2" id="btn2" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.