Событие jQuery, всплывающее с фокусом в фокусе Размытие фокуса повторяется без прерывания

Приведенный ниже файл просто включен в php-файл для самостоятельной работы.

ТЕКУЩИЙ ВЫХОД: Когда я делаю действие из focusout в focusin значение меняется. Я не хочу, чтобы это случилось. ОЖИДАЕМЫЙ ВЫХОД: Я хочу, чтобы значения автоматически изменялись только тогда, когда они превышают минимальные или максимальные значения.

Пытается так далеко:

  1. я использовал event.preventdefault() после того, как мои необходимые действия сделаны.
  2. Я использовал последовательный focusinfocusoutfocus а также blur,
  3. Я положил еще один внутри changedOnkeyAction(); вызов функции focusOver функция.
  4. Пробовал с return но не поможет

JSFIDDLE: https://jsfiddle.net/vnh4Ljxz/11/

ИСПОЛЬЗУЙТЕ УГЛОВЫЕ ЛИСТЫ ДЛЯ НИЖЕ, ЧТОБЫ ЗАКРЫТЬ HTML-ТЕГИ ДЛЯ ВХОДНОГО ПОЛЯ

input id = "frmRandomDownloadDelay" class="textWidget ui-spinner-input пользовательская кнопка ui-виджет ui-состояние-состояние по умолчанию ui-corner-all" value="30" valuemin="0" valuemax="60" valuenow="60" autocomplete="off" role="button" disabled="false" style="width: 44px;" тип = "текст"

            function ValidateNum(spinnerId, currentValue) {
                this.rotate = {
                    'rotId': rotId,
                    'currentValue': currentValue
                };  
                this.beyondMinLimit = function(){
                    var minValue = $(this.rotate.rotId).attr("aria-valuemin");
                    return this.rotate.currentValue < minValue;
                };
                this.beyondMaxLimit = function(){
                    var maxValue = $(this.rotate.rotId).attr("aria-valuemax");
                    return this.rotate.currentValue > maxValue;
                };
                this.emptyValue = function(){
                    return $(this.rotate.rotId).val() == "";
                };
                this.isNumeric = function(){
                    var valid = /^\d{0,4}(\.\d{0,2})?$/.test(this.rotate.currentValue);
                    alert("is number - " + valid);
                    return valid;
                };

            }

            function setToDefault(rotId, restoreValue){
                $( rotId ).val( restoreValue );
                $( ".ui-spinner-input" ).off();
            }

            function focusDone(promptOf){
                $( ".ui-spinner-input" ).focusin(function() {
                        var rotId = "#"+$(this).attr("id");
                        var restoreValue = "";
                        switch(promptOf){
                            case "lesser" || "empty" || "notNumeric":
                                restoreValue = $(rotId).attr("valuemin");
                                setToDefault(rotId, restoreValue);
                                break;
                            case "greaterThanMax":
                                restoreValue = $(rotId).attr("valuemax");
                                setToDefault(rotId, restoreValue);
                                break;
                        }
                });
            }

            function changedOnkeyAction(){
                $(document).on('keyup', ".ui-spinner-input", function(){
                    var rotId = "#"+$(this).attr("id");     
                    var currentValue = $(rotId).val();
                    var currentSpin = new ValidateNum(rotId, currentValue);
                    var lesser = nowSpun.beyondMinLimit();
                    var greaterThanMax = nowSpun.beyondMaxLimit();
                    var empty = nowSpun.emptyValue();
                    var isNumber = nowSpun.isNumeric();

                    if(lesser){
                        alert("minimum.");          
                        focusDone("lesser");
                    } 
                    if(greaterThanMax){
                        alert("maximum.");          
                        focusDone("greaterThanMax");
                    }
                    if(empty){
                        focusDone("empty");
                    }
                    if(!isNumber){
                        focusDone("notNumeric");
                    }
                });
            }
            keyAction();

0 ответов

Другие вопросы по тегам