событие нажатия клавиши не срабатывает при нажатии клавиши ввода - PullRequest
1 голос
/ 24 февраля 2012

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

Вот мой код:

$("#txt" + filterID).keypress(txtInput_keypress);

function txtInput_keypress(e) { 
    var code = (e.keyCode ? e.keyCode : e.which);
    var strValue = $(this).val()+ String.fromCharCode(e.which);
    var bool = $.trim(strValue).match(reg); 
    if (code == 13) {  
        //textbox value submission code
    }
    else if (parseFloat($.trim(strValue)) > max) {
        e.preventDefault();
    }
    else if (bool) {  
        return true;
    }
    else {
        e.preventDefault();
    }  
} 

Что не так с моим кодом?Пожалуйста, кто-нибудь, помогите мне решить эту проблему.

1 Ответ

1 голос
/ 19 апреля 2012
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var filterID = 1, reg = '^([0-9]|[1-9][0-9]|[1-9][0-9][0-9])$', max = 1000;

            $("#txt" + filterID).keypress(txtInput_keypress);

            function txtInput_keypress(e) {
                var code = (e.keyCode ? e.keyCode : e.which);
                var strValue = $(this).val() + String.fromCharCode(e.which);
                var bool = $.trim(strValue).match(reg);
                if (code == 13) {
                    //textbox value submission code
                    //$('form#test').submit(); // if alert is not coming uncoment this line.
                }
                else if (parseFloat($.trim(strValue)) > max) {
                    e.preventDefault();
                }
                else if (bool) {
                    return true;
                }
                else {
                    e.preventDefault();
                }
            }
        });                
    </script>
</head>
<body>
    <form id="test" action="javascript:alert('success!');">
    <input type="text" id="txt1" />
    </form>
</body>
</html>
...