Javascript: нажмите клавишу ввода
Доброе утро...
Я использую java-скрипт на каждой странице, чтобы вызвать клавишу Enter, нажмите Event внутри текстового поля. Работает нормально. Теперь я хочу разместить код в .js
файл для глобального доступа.
function EnterKeyPress(id,e) {
// look for window.event in case event isn't passed in
if (window.event) { e = window.event; }
if (e.keyCode == 13 || e.keyCode == 121) {
window.document.getElementById('<%= ibtnSubmit.ClientID %>').click();
}
}
Я не хочу жестко кодировать контрольный идентификатор. Кто-нибудь может мне помочь, пожалуйста..
3 ответа
Вы можете использовать свой параметр id вместо ControlID, и когда вы используете эту функцию на своих страницах, вы можете передать ControlID в качестве параметра:
function EnterKeyPress(id,e) {
if (window.event) { e = window.event; }
if (e.keyCode == 13 || e.keyCode == 121) {
document.getElementById(id).click();
}
}
Вы используете ASP .NET, поэтому в своем коде вы можете назначить событие нажатия клавиши:
TextBox1.Attributes.Add("onkeypress",
string.Format("EnterPressKey('{0}', event);", ibtnSubmit.ClientID));
Но подождите, эта функциональность уже реализована в ASP .NET, вы можете использовать элементы управления ASP:Panel, чтобы обернуть ваши общие элементы управления, и вы можете назначить DefaultButton для панели, чтобы указать, какая кнопка нажимается, когда элемент управления Panel имеет фокус и пользователь нажимает клавишу ввода.
Если вы хотите, чтобы форма отправлялась, когда пользователь нажимает клавишу Enter, тогда вам не нужен javascript. Это будет сделано автоматически. Просто поместите текстовое поле внутри элемента формы с действием:
<form action="process.php">
<input type="text">when the enter key is pressed, the form is submitted and sent to process.php</input>
</form>
Если вы используете jQuery, вы можете сделать это так:
$("input[id*=ibtnSubmit]").click()