按键,键控和更改具有相同类名的输入的事件

keypress,keyup and change events on inputs with same class name

本文关键字:同类 输入 事件 按键      更新时间:2023-09-26

我有一个表,其中第一行都是共享相同类名的文本输入。 我想设置一个验证,以便用户只输入浮点数。有谁知道我在以下代码中可能缺少什么?$('input." + classname) 或 $('.classname) 在调用 floatTextField() 函数时不会触发任何事件

网页代码:

<td><div class="input-group"><input type="text" class="form-control myclass" value="2.8"></div> </td>

JavaScript 代码:

floatTextField('myclass');
function floatTextField(classname) {
    $('input.' + classname).keypress(function (event) {
        var charCode = (event.which) ? event.which : event.keyCode;
        if (event.which == 0)//common keys
            return true;
        var value = $(this).val();
        if (charCode == 45 && value.indexOf('-') != -1) {
            return false;
        }
        else if (charCode == 46 && value.indexOf('.') != -1)
            return false;
        else if (charCode != 46 && charCode != 45 && charCode > 31 && (charCode < 48 || charCode > 57))
            return false;
        return true;
    });
    $('input.' + classname).keyup(function (event) {
        var value = $(this).val();
        if (value <= 0 && value.indexOf('.') == -1 && value.indexOf('-') == -1) {
            $(this).val('');
        }
        if (value.indexOf('-') > 0) {
            value = value.replace('-', '');
            $(this).val(value);
        }
    });
    $('input.' + classname).change(function (event) {
        var value = $(this).val();
        if (value.indexOf('.') == 0) {
            value = '0' + value;
            $(this).val(value);
        }
    });
}

您必须像这样使用 $(document).ready() 方法:

function floatTextField(classname) {
    $('input.' + classname).keypress(function (event) {
        var charCode = (event.which) ? event.which : event.keyCode;
        if (event.which == 0)//common keys
            return true;
        var value = $(this).val();
        if (charCode == 45 && value.indexOf('-') != -1) {
            return false;
        }
        else if (charCode == 46 && value.indexOf('.') != -1)
            return false;
        else if (charCode != 46 && charCode != 45 && charCode > 31 && (charCode < 48 || charCode > 57))
            return false;
        return true;
    });
    $('input.' + classname).keyup(function (event) {
        var value = $(this).val();
        if (value <= 0 && value.indexOf('.') == -1 && value.indexOf('-') == -1) {
            $(this).val('');
        }
        if (value.indexOf('-') > 0) {
            value = value.replace('-', '');
            $(this).val(value);
        }
    });
    $('input.' + classname).change(function (event) {
        var value = $(this).val();
        if (value.indexOf('.') == 0) {
            value = '0' + value;
            $(this).val(value);
        }
    });
}
$(document).ready(function(){
  floatTextField('myclass');
});