Как выполнить ту же функцию для ввода в текстовое поле, как нажатие кнопки

0

У меня есть следующий код на странице ASP:

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <input type="text" id="TextBox1" />
    <input id="Button1" type="button" value="button" />
            <script type = "text/javascript">
        $(document).ready(function () {
            $("#Button1").click(function () {
                var textbox = document.getElementById("TextBox1").value;
                if (textbox.length > 0) {
                    alert("Hello world!");
                    window.location.href = "http://westmedgroup.com/search_results.aspx?searchtext=" + textbox + "&folderid=0&searchfor=all&orderby=title&orderdirection=ascending";
                }
                else {
                    alert("Search query empty");
                }
            });
            $('#TextBox1').keyup(function () {
                var $th = $(this);
                $th.val($th.val().replace(/[^a-zA-Z0-9]/g, ''));
            });
            $('#TextBox1').keypress(function (e) {
                var code = (e.keyCode ? e.keyCode : e.which);
                if (code == 13) {
                    var textbox = document.getElementById("TextBox1").value;
                    if (textbox.length > 0) {
                        window.location.href = "http://westmedgroup.com/search_results.aspx?searchtext=" + textbox + "&folderid=0&searchfor=all&orderby=title&orderdirection=ascending";
                    }
                    else {
                        e.preventDefault();
                    }
                }
            });
        });
    </script> 
</asp:Content>

Когда я нажимаю кнопку, она делает то, что она должна, если есть текстовое значение, тогда появляется предупреждение, а затем перенаправляется на страницу с результатами поиска, иначе не перенаправляйте и не показывайте оповещение по запросу поискового запроса. Я пытаюсь сделать то же самое для текстового поля, но все, что я нажимаю, вводит, и есть текстовое значение, оно просто обновляет страницу без перенаправления. Как изменить код, чтобы текстовое поле и кнопка работали вместе.

  • 0
    вернуть ложь ...
  • 1
    Да, я понял это позже, я привык к чистому JS. Вот быстрый указатель: stackoverflow.com/a/4379459/3227403

1 ответ

1
Лучший ответ

Нажатие ввода в текстовое поле отправляет форму, вы должны e.preventDefault() даже при перенаправлении.

  • 0
    @ SiKni8: Честно говоря, я больше не верю своим собственным словам. Входные данные не type = "submit", а type = "button", поэтому не должно быть никаких неявных действий формы. Не могли бы вы, пожалуйста, «вернуть false» (сигнализируя, что событие было обработано)? Пожалуйста, расскажите, в чем заключалась проблема и решение. Мне любопытно.
  • 0
    На самом деле e.preventDefault() добились e.preventDefault() :) Я все еще тестирую, хотя.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню