2016-04-01 1 views
2

Je le code ci-dessousRestreindre input type = « numéro » à son minimum ou maximum si elle est hors de portée

<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> 

si un utilisateur entre une valeur dans la zone de texte hors de la plage, il devrait réinitialiser sa valeur minimale ou maximale la plus proche, par exemple si l'utilisateur entre dans la zone de texte inférieure à 1, alors il devrait être réinitialisé à 1, s'il entre plus de 4, alors il devrait être réinitialisé à 4.

Veuillez nous contacter si vous en avez autre tag au lieu d'utiliser l'étiquette d'entrée pour restreindre

Il existe déjà une solution qui ne fonctionne pas pour moi

+0

Copie possible de [Restreindre l'utilisateur pour mettre la valeur dans la plage de l'entrée html (type = number)] (http://stackoverflow.com/questions/25825843/restrict-user- to-put-value-in-range-in-html-input-type-nombre) –

+0

Non, il est sur la touche. J'ai besoin de restriction sur la saisie directe dans la zone de texte – Joshi

+0

Toute façon de désactiver l'édition de zone de texte et devrait utiliser uniquement la touche? – Joshi

Répondre

0

Type En fait entrée = nombre seulement poignées et non permet à l'utilisateur de soumettre le formulaire si le nombre entré n'est pas dans la plage

4

Cette solution peut-être ce que vous êtes après: 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 également fourni un violon de travail: http://jsfiddle.net/Ddk67/75/

+1

Cela fonctionne mais je ne m'attendais pas à jQuery. Effectivement le type d'entrée = le nombre manipule seulement et ne permet pas à l'utilisateur de soumettre le formulaire si le nombre entré n'est pas dans la gamme – Joshi

+0

Ah ok, mes excuses –

+1

@AaronLavers dans cette solution, il accepte 'e' comme nombre :) vous devriez utiliser parseInt () sur la valeur d'entrée et isNaN() dans une instruction else-if;) –