У меня есть веб-приложение asp.net MVC.
У меня есть кнопка ввода:
<input type="submit" name="Report" value="To File" id="rptToFile" />
У меня есть еще одно текстовое поле ввода:
<input type="text" id="txtMemItem1" name="" />
когда пользователь нажимает Enter в TextBox
я написал код, чтобы открыть новое всплывающее окно:
но проблема в том, что: нажав enter, он вызывает метод HTTPPOST Action в контроллере. Я не хочу отправлять его на EnterPress, но хочу открыть всплывающее окно.
как я могу решить мою проблему???
Благодаря
Это поведение по умолчанию для форм HTML. Когда вы фокусируетесь на управлении формой и нажатой, вводимая форма отправляется на сервер.
Альтернативное решение этой проблемы может быть написать яваскрипт onkeypress
события и проверить, если keyCode is 13
(enter
), а затем return false
и открыть всплывающее окно еще return true
.
HTML
<input type="text" onKeyPress="keyPressed(event)" .../>
Javascript
function keyPressed(event)
{
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13)
{
//open a popup here.
return false;
}
return true;
}
Альтернативно, если вам не нужно публиковать форму, вы можете использовать что-то вроде ниже.
<form onsubmit="return false" ></form>
это в основном проблема js jquery, вам нужно предотвратить отправку указателя на ввод, это поможет вам отключить форму jquery form submit on enter