我現在面臨的問題是,在Html.TextBoxFor()中按下Enter鍵時,會自動觸發按鈕單擊事件。我有一個主要觀點。在這個視圖中有3個按鈕。在每個2按鈕上單擊一個局部視圖,在第三個按鈕單擊期間打開一個新視圖。請參閱下面的代碼:在TextBoxFor Enter鍵期間自動觸發的按鈕單擊事件按
<script>
$(document).ready(function() {
SetUpDatePickers();
});
$('#button1').click(function (event) {
$('#divdefinetraj').toggle();
$('#button1').hide();
$('#button2').hide();
$('#button3').hide();
event.preventDefault();
GetTrajectories();
});
$('#button2').click(function (event) {
$('#divRequestTT').toggle();
$('#button1').hide();
$('#button2').hide();
$('#button3').hide();
event.preventDefault();
});
$('#button3').click(function (event) {
window.location.href = '/UserManagement/UsersList/';
event.preventDefault();
});
</script>
我點擊按鈕1,並且第一部分視圖打開:
局部視圖有下面的代碼:
@Html.TextBoxFor(u => u.TrajName, new { @class = "txtboxclass", @id = "TrajName" })
我的問題是,當我按「Enter 「鍵在此文本框內,正在執行主視圖中button1的代碼:
$('#button1').click(function (event) {
$('#divdefinetraj').toggle();
$('#button1').hide();
$('#button2').hide();
$('#button3').hide();
event.preventDefault();
GetTrajectories();
});
這會導致所有按鈕被隱藏,除非用戶重新加載視圖,否則視圖將變得無用。
我試圖處理文本框的onchange()
事件並重定向到下面的函數,但它不處理。
function EnterKeyFilter() {
if (window.event.keyCode == 13) {
event.returnValue = false;
event.cancel = true;
}
}
即使我嘗試了相同的功能爲div - click()..它不起作用。 當我按下回車鍵時,正在使用此信息處理確切的button1點擊event = j…y.Event {originalEvent: MouseEvent, type: "click", timeStamp: 7055.025000000001, jQuery110208686809991100928: true, toElement: button#button1
。
但我沒有點擊它。部分視圖也不是表單的一部分,表單提交不是問題。我是ASP.NET MVC的新手,並且對這種奇怪的行爲感到困惑。請幫忙。提前致謝。
你可以嘗試將焦點設置到一些隱藏的控制什麼都不做。 – Tatranskymedved
當你在鍵盤上按下輸入鍵時,你想要什麼,什麼都不應該發生,對吧? –
@WillyDavidJr:是的。究竟。 – ViVi