2016-04-01 6 views
2

У меня есть ниже кодОграничить тип ввода = «число» его мин или макс, если он находится вне диапазона

<form:input type="number" min="1" max="4" size="5" value="1" path="n" name='n' placeholder="<5" style="height:25px;width:60px"></form:input> 

если пользователь вводит значение в текстовом поле вне диапазона, то он должен сбросить с его ближайшее минимальное или максимальное значение, например, если пользователь вводит текстовое поле как менее 1, тогда он должен быть сброшен до 1, если он вводит более 4, тогда он должен быть сброшен до 4.

Прошу совета, если у нас есть другой тег вместо использования тега ввода для ограничения

Существует уже существующее решение, которое не работает для меня

+0

Возможный дубликат [Ограничить пользователя, чтобы поместить значение в диапазон в входе html (тип = номер)] (http://stackoverflow.com/questions/25825843/restrict-user- to-put-value-in-range-in-html-input-type-number) –

+0

Нет нажатия клавиши. Мне нужно ограничить прямое вхождение в текстовое поле – Joshi

+0

Любой способ отключить редактирование текстового поля и использовать только клавиши? – Joshi

ответ

0

Собственно ввод типа = число только ручки и не позволяет пользователю представить форма, если введенный номер не находится в диапазоне

4

Это решение может быть то, что вы после: jquery: set min max input in option type number

$(function() { 
    $("input").change(function() { 
    var max = parseInt($(this).attr('max')); 
    var min = parseInt($(this).attr('min')); 
    if ($(this).val() > max) 
    { 
     $(this).val(max); 
    } 
    else if ($(this).val() < min) 
    { 
     $(this).val(min); 
    }  
}); 
}); 

@Caspian также предоставил рабочую скрипку: http://jsfiddle.net/Ddk67/75/

+1

Это работает, но я не ожидал jQuery. Фактически тип ввода = число обрабатывается и не позволяет пользователю отправлять форму, если введенный номер не находится в диапазоне – Joshi

+0

А, ну, мои извинения –

+1

@AaronLavers в этом решении, он принимает «e» как номер :) вы должны использовать parseInt () по входному значению и isNaN() в выражении else-if;) –