Как принять только положительное целое число в счетчике Jquery?
'<label id="quantite" for="quantite">Quantite : </label><input id="QteSpinner" value="1"></br>'
[...]
var newSpinner = $( "#QteSpinner" ).spinner({
min: 1
});
Как я могу ограничить пользователя только набирать числа в JQuery спиннер, как этот?
Спасибо
4 ответа
Использование
{десятичные:0}
или же
{Мин:0}
или оба вместе в опциях
Посмотрите на эту скриптовую ссылку. Я создал один образец, который будет ограничивать отрицательные числа в счетчике.
var value;
var $container=$("#QteSpinner");
var newSpinner = $container.spinner({
min: 1,
}).focus(function () {
value = $container.val();
}).blur(function () {
var value1 = $container.val();
if (value1<0) {
$container.val(value);
}
if(isNaN(value1))
{
$container.val(value);
}
});
Я надеюсь, что это поможет вам больше.
Используйте функцию изменения для сопоставления нецелочисленных входных данных с подходящим значением по умолчанию, например
var myspinner = $( "#myspinner" ).spinner(
{
min: 1,
change: function (event, ui ) {
var val = myspinner.spinner( "value" );
myspinner.spinner("value", parseInt(val,10) || 1);
/*
var val = $(this).spinner( "value" );
$(this).spinner("value", parseInt(val,10) || 1);
*/
}
});
Это не помешает пользователю набрать ерунду, но ограничит значения в счетчике, как только счетчик потеряет фокус. Если вам абсолютно необходимо заблокировать ввод чего-либо, кроме цифр, вы можете сделать что-то с помощью функции keypress(). См. Jquery, чтобы проверить, когда кто-то начинает вводить данные в поле для получения более подробной информации.
Вот как я это сделал:
jQuery( "#spinner" ).spinner({ min: 0 });
jQuery( "#spinner").keyup(function() {
if( isNaN (jQuery(this).val() )){ //Only numbers !
jQuery(this).prop("value", "0") ; //Back to 0, as it is the minimum
}
});
Готово.
Небольшое улучшение по сравнению с Франсиско Корралесом Моралесом, поскольку он не обнуляет поле. Удаляет только альфа-запись
jQuery( "#repeat_x").keyup(function() {
if(isNaN (jQuery(this).val() )){
/* however only slicing off the last character instead of setting to 0 */
jQuery(this).prop("value",jQuery(this).prop("value").slice(0, -1));
}
});
Или вы можете проверить значение нажатия клавиши, а затем использовать $.isNumeric(), чтобы проверить его, например:
$("#spinner").spinner({
min: 1
}).keypress(function(e){
key = e["originalEvent"]["key"];
if (!$.isNumeric(key)){
e.preventDefault();
}
});