2014-02-01 4 views
1

Вопрос довольно прост:Когда Ajax.BeginForm() может игнорировать отправку при вводе?

Когда Ajax.BeginForm() может игнорировать форму submit on enter press?

Решение:

Форма МОЖЕТ БЫТЬ представлены без <input type="submit"> (через) введите нажатие клавиши, если:

Существует только один HTML элемент внутри формы типа <input type="text"> (с textarea не работает).

Форма НЕ МОЖЕТ БЫТЬ представлены через ввести нажатие клавиши, если:

Существует более чем один HTML элемент внутри формы типа <input type="text"> и не <input type="submit">

+0

Вопрос не прямолинейный, вопрос не ясен. Вы имеете в виду, что ваши нажатия на форму, сгенерированную с помощью 'Ajax.BeginForm()', игнорируются? У вас есть кнопка отправки? – CodeCaster

+0

@CodeCaster Перечитайте его. Если не удастся спросить у бейджера, как он понял этот вопрос. –

+0

Ну, на самом деле не так много читать, не так ли? См. [Как спросить] (http://stackoverflow.com/questions/how-to-ask) для некоторых советов по написанию лучших вопросов. – CodeCaster

ответ

1

Прежде всего убедитесь, в вашей форме есть кнопка отправки. В случае, если вы не хотите иметь любую кнопку представить в форме (хотя это было бы немного странно, но нормально), можно добавить кнопку отправки и скрыть это так:

<div class="hidden-submit"><input type="submit" tabindex="-1"/></div> 

А потом в файл CSS:

.hidden-submit { 
    border: 0 none; 
    height: 0; 
    width: 0; 
    padding: 0; 
    margin: 0; 
    overflow: hidden; 
} 

Другим решением является добавить следующее в Javascript:

$(window).keypress(function (event) { 
    if (event.which == 13) { 
     document.forms[0].submit(); 
     // assuming that you have just one form on the whole page 
    } 
}); 
+0

Я фокусирую вручную элемент ввода внутри формы, а затем нажимаю enter. И форма не отправляется. Любые другие идеи? –

+0

Итак, вы хотите игнорировать отправку или разрешение отправки через enter? –

+0

Он просто не отправляет на ввод клика! –

2

это дает мне решение моей проблемы: -

Проблема: - У меня есть только одно текстовое поле, одно текстовое поле, другие поля ввода html и одна кнопка типа = на мой взгляд. Форма приложения MVC. когда я нажимал клавишу ввода в текстовом поле, он запускал postback, и это вызывало проблему для меня.

Решение: - Из выше решений христианина, я узнал, что, когда есть одно текстовое поле используется с Html.BeginForm тегом в MVC ввода нажмите клавишу событие запускает событие кнопки отправить. Вероятно, это не тот ответ, который я должен публиковать здесь, но я рад, что нашел решение из этого сообщения, поэтому я отправляю свой ответ здесь.

Смежные вопросы