Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Ошибка в коде при проверке инпута (https://javascript.ru/forum/jquery/57921-oshibka-v-kode-pri-proverke-inputa.html)

Валерий1996 26.08.2015 13:22

Ошибка в коде при проверке инпута
 
Подскажите где может быть ошибка в коде ? При проверке на количество символов и соотвецтвие мобильным операторам , кнопка сабминт должна быть блокирована , но этого не происходит . Подскажыте может чего незаметил?

вот код :
<form action="" autocomplete="off">
<input  id="phone" type="text" autocomplete="off" class="telephone"   value="Введите Ваш номер" name="input" > 
<div class="nambers">
<button id="0" class="0 btn">0</button>
<button id="1" class="1 btn">1</button>
<button id="2" class="2 btn">2</button>
<button id="3" class="3 btn">3</button>
<button id="4" class="4 btn">4</button>
<button id="5" class="5 btn">5</button>
<button id="6" class="6 btn">6</button>
<button id="7" class="7 btn">7</button>
<button id="8" class="8 btn">8</button>
<button id="9" class="9 btn">9</button>
<button id="10"class="l0 btn">10</button>
<button id="enter" class="entr btn"   type="submit">Enter</button>
<button id="backspace"  class="backspace btn">backspace</button>
</form>



(function($){


var checkMobileOperator = function(){



//var operators  = window.operators;
var operators = [{code:'909', 'name':'Beeline'}, {code: '921', name: 'MTS'}];

console.log(operators[0])

this.check = function(value){


value = value.replace(/(?:^(7|\+7|8))*(?:\(|\))/g,'');


if (value.length == 9) {


var code = value.substr(0,3);

    for (var i = 0, len =  operators.length; i < len; i++) {
        if ( operators[i].code === code)
            return operators[i].name; 
    }

    return null; 
}

}

}

var CheckMobileOperator = new checkMobileOperator();

var form = $('form'),
input = $('#phone', form),
submit = form.find('#enter');
submit.prop('disabled','disabled');

console.log(input)

input.on('keydown', function(e){
	
if (!((which >= 48 && which <= 57) || which == 13)){
 e.preventDefault();
 return false;
 
}



!!checkMobileOperator.check(input.val()) && submit.removeprop('disabled');


});
})(jQuery)

Валерий1996 26.08.2015 14:10

Вот весь код :
http://jsfiddle.net/t52ka/27/

laimas 26.08.2015 14:22

Это удобно номера щелкать, при чем без отображения набранного (кстати "Введите Ваш номер" наверное не значением поля должно быть, а placeholder?)?

Валерий1996 26.08.2015 16:26

Цитата:

Сообщение от laimas (Сообщение 385771)
Это удобно номера щелкать, при чем без отображения набранного (кстати "Введите Ваш номер" наверное не значением поля должно быть, а placeholder?)?

Почему набранный номер отображаться в поле. А как его сделать через placeholder?

laimas 26.08.2015 16:44

На jsfiddle у меня нет отображения набранного, да и вряд ли такое решение удобно, хотя вам решать.
http://htmlbook.ru/html/input/placeholder


Часовой пояс GMT +3, время: 22:17.