Проверьте числовое текстовое поле в jQuery

StartDate < EndDate
5
задан mark vanzuela 9 November 2009 в 05:43
поделиться

3 ответа

вы можете использовать обратный вызов, который проверяет при выходе из поля, действительно ли значение, если значение недействительно, затем очищает его и отображает сообщение об ошибке:

var decimal_char = ',';
function isvalidnumber(){
    var val=$(this).val();
    //This regex is from the jquery.numeric plugin itself
    var re=new RegExp("^\\d+$|\\d*" + decimal_char + "\\d+");
    if(!re.exec(val)){
        alert("Invalid number");
        $(this).val("");
    }       
}
$(document).ready(function(){
    $("#txtN").numeric(decimal_char,isvalidnumber);
});
5
ответ дан 14 December 2019 в 08:53
поделиться

Я нашел этот сценарий на http://www.kunalbabre.com/jQueryLibrary/index.php :

$('input[numeric]').keyup(function() {    
    var d = $(this).attr('numeric');

    var value = $(this).val();
    var orignalValue = value;
    value = value.replace(/[0-9]*/g, "");

    var msg = "Only Integer Values allowed.";

    if (d == 'decimal') {
        value = value.replace(/\./, "");
        msg = "Only Numeric Values allowed.";
    }

    if (value != '') {
        orignalValue = orignalValue.replace(/([^0-9].*)/g, "")
        $(this).val(orignalValue);
        //alert(msg);
        $(this).after('<span style="margin-left:5px;color:red;position:absolute;">' + msg + '</span>');
    } else {
        $(this).next('span').remove();
    }
});

Он работает нормально, за исключением случаев, когда номер имеет ', 'на нем как' 100,000.00 '. Будет отображено всего «100». Символы ',' и остальные пропали.

Edit: Я думаю, что это на reg ex, но я ничего не знаю об этом. : (

Есть идеи? Помощь?

1
ответ дан 14 December 2019 в 08:53
поделиться

Где написано:

value = value.replace(/\./, "");

Вы должны поставить:

value = value.replace(/\.\,/, "");

Я думаю; -)

Я действительно закончил тем, что сделал это:

$(‘.InputClass’).keyup(function(){
  if ($(this).val() != "")
     $(this).val( $(this).val().replace(/[^0-9\.]/g, "") );
});

Итак, никаких раздражающих предупреждений или чего-либо еще; просто если вы введете что-либо, кроме числа или точки после числа, стирается. Просто, но эффективно.

Ура. Надежда кому-то помогает.

1
ответ дан 14 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: