В текстовом поле PHP: запретите пользователю вводить более трех чисел до десятичной точки, например:
если пользователь вводит 123.12 его приемлемым, если пользователь вводит 12.12, его также приемлемо, но если пользователь вводит 1234.12, это не приемлемо.
Просто проверьте эту скрипту: http://jsfiddle.net/S6uky/
HTML:
<form method="post">
<div class="row">
<label>Val 1</label>
<input type="text" class="validate" name="val1" maxlength="5"/>
</div>
<div class="row">
<label>Val 2</label>
<input type="text" class="validate" name="val2" maxlength="5" />
</div>
<div class="row">
<label>Val 3</label>
<input type="text" class="validate" name="val3" maxlength="5" />
</div>
<div class="row">
<button type="submit">Send</button>
</div>
</form>
JAVA SCRIPT:
$(function(){
$('.validate').blur(function(){
var reg=/^[0-9]{1}[0-9]{1}[\.]{1}[0-9]{1}[0-9]{1}$/g;
if($(this).val().match(reg)==null)
alert('Invalid input!');
});});
function isAccept(number){
return number.indexOf('.') < 4;
}
Попробуйте этот код:
$(function(){
$('.validate').blur(function(){
var reg=/^[0-9]{0,3}[.][0-9]{0,2}$/g;
console.log($(this).val().match(reg));
if($(this).val().match(reg)==null)
alert('Invalid input!');
else
alert('valid input!');
});});
Попробуйте с .test()
следующим образом:
$(function () {
$('.validate').blur(function () {
var reg = /^[0-9]{0,3}[\.]{1}[0-9]{0,2}$/g; //<---updated this
if (!reg.test(this.value)) {
alert('Invalid input!');
$(this).focus();
return false;
}
});
});
Другой способ - сделать глобальную функцию и использовать ее в качестве обратного вызова:
function isValidInput() {
var reg = /^[0-9]{0,3}[\.]{1}[0-9]{0,2}$/g;
if (!reg.test(this.value)) {
alert('Invalid input!');
$(this).focus();
return false;
}
}
$(function () {
$('.validate').blur(isValidInput);
});