Как предотвратить отправку формы при нажатии ввода в поле ввода без формы? (DNN) - PullRequest
2 голосов
/ 01 декабря 2011

На странице у меня есть поисковое поле google и отдельная форма для входа.Чтобы поле поиска работало с вводом, я включил следующий скрипт:

$('#searchBox').keydown(function (event) {
    if (event.keyCode == 13) {
        document.location.href = "someTargetPage.html";
    }
});

Единственная проблема состоит в том, что в этом случае форма будет отправлена, поскольку поле поиска включено в форму, который я не могу изменить из-за архитектуры dot net nuke.Я пытался предотвратить это следующим образом:

$('form').delegate('input:submit', 'click',
    function () {
        return false;
});

Теперь поле поиска работает хорошо с вводом, но кнопка отправки из формы не будет работать!Есть ли способ проверить откуда триггер и разрешить или запретить его?

Thx для любых подсказок!

Ответы [ 2 ]

1 голос
/ 01 декабря 2011

Удалите ваш код, который останавливает работу кнопки ввода (ваш делегат на input:submit).Вам просто нужно заставить #searchBox не распространять событие до формы.Это обработчик окна поиска, который должен отменить событие, возвращая false:

$('#searchBox').keydown(function (event) {
    if (event.keyCode == 13) {
        document.location.href = "someTargetPage.html";
        return false;
    }
});
0 голосов
/ 01 декабря 2011

Если вы действительно хотите полностью отключить форму, просто верните false в событии onsubmit:

$("#searchform").live("onsubmit", function(){ return false; });
...