Ajax.BeginForm + запретить отправку при входе - PullRequest
1 голос
/ 06 октября 2011

Я использую ASP.NET MVC 3 с ненавязчивым Ajax, и я хотел бы запретить отправку формы путем ввода. Я написал следующий код, чтобы сделать это

$(window).keypress(function (event) { 
    if (event.which == 13) { 
       event.preventDefault(); 
    } 
});

К сожалению, это событие не запускается в IE8. Есть ли другие варианты? (Я использую jQuery 1.6.4)

Ответы [ 3 ]

2 голосов
/ 06 октября 2011

Вы должны установить фокус на следующий элемент в DOM

$(window).keypress(function (event) { 
    if (event.which == 13) { 
       $(this).next().focus(); 
    } 
});

Проверьте следующий тип элемента, если тип не является текстовой областью (ввод разрешен) или кнопкой / отправить (ввод = щелчок), тогда мыпросто нажмите на следующую вещь.

пример,

if (e.which == 13) {
        var $targ = $(e.target);

        if (!$targ.is("textarea") && !$targ.is(":button,:submit")) {
            var focusNext = false;
            $(this).find(":input:visible:not([disabled],[readonly]), a").each(function(){
                if (this === e.target) {
                    focusNext = true;
                }
                else if (focusNext){
                    $(this).focus();
                    return false;
                }
            });

            return false;
        }
    }
0 голосов
/ 06 октября 2011

Отметьте это , чтобы убедиться, что вы нажимаете клавишу или даже нажимаете клавишу в вашем браузере.Если вы не хотите, чтобы это событие возвращало что-либо, просто return false;

0 голосов
/ 06 октября 2011

РЕДАКТИРОВАТЬ : О, просто перечитайте свой вопрос - в IE вы, вероятно, хотите нацелиться на $(window).keydown(function(event) вместо нажатия клавиши

Я думаю, в IE вы должны посмотреть на событие.свойство keyCode

$(window).keypress(function (event) {
if(event && event.which){ //if which property of event object is supported (NN4)
characterCode = event.which //character code is contained in NN4's which property
}
else{
characterCode = event.keyCode //character code is contained in IE's keyCode property
}

if (characterCode == 13){
     event.preventDefault();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...