Javascript keypress、keyup和change事件对具有相同类名的输入

Javascript keypress、keyup和change事件对具有相同类名的输入,javascript,jquery,Javascript,Jquery,我有一个表,其中第一行是共享相同类名的所有文本输入。我想设置一个验证,以便用户只输入浮点数。有人知道我在下面的代码中遗漏了什么吗$调用floatTextField()函数时,('input.+classname)或$('.classname)不会触发任何事件 HTML代码: <td><div class="input-group"><input type="text" class="form-control myclass" value="2.8"></

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

HTML代码:

<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);
        }
    });
}
floatTextField('myclass');
函数floatTextField(类名称){
$('input.+classname).keypress(函数(事件){
var charCode=(event.which)?event.which:event.keyCode;
if(event.which==0)//公共键
返回true;
var值=$(this.val();
if(charCode==45&&value.indexOf('-')!=-1){
返回false;
}
else if(charCode==46&&value.indexOf('.')!=-1)
返回false;
如果(charCode!=46&&charCode!=45&&charCode>31&&charCode<48|charCode>57))
返回false;
返回true;
});
$('input.+classname).keyup(函数(事件){
var值=$(this.val();
如果(值为0){
值=值。替换('-','');
$(此).val(值);
}
});
$('input.+classname).change(函数(事件){
var值=$(this.val();
if(value.indexOf('.')==0){
值='0'+值;
$(此).val(值);
}
});
}
您必须使用
$(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');
});
函数floatTextField(类名称){
$('input.+classname).keypress(函数(事件){
var charCode=(event.which)?event.which:event.keyCode;
if(event.which==0)//公共键
返回true;
var值=$(this.val();
if(charCode==45&&value.indexOf('-')!=-1){
返回false;
}
else if(charCode==46&&value.indexOf('.')!=-1)
返回false;
如果(charCode!=46&&charCode!=45&&charCode>31&&charCode<48|charCode>57))
返回false;
返回true;
});
$('input.+classname).keyup(函数(事件){
var值=$(this.val();
如果(值为0){
值=值。替换('-','');
$(此).val(值);
}
});
$('input.+classname).change(函数(事件){
var值=$(this.val();
if(value.indexOf('.')==0){
值='0'+值;
$(此).val(值);
}
});
}
$(文档).ready(函数(){
floatTextField('myclass');
});

yes,函数在$(document).ready(function(){}内,当我使用$(“#myId”)时它会工作。单击(function(){})是否希望您的代码在每次调用函数时都激发函数中的事件?我希望在用户在任何输入文本上输入值时激发函数中的任何事件(如果您希望在问题中包含代码)。我已在所有事件中添加了
console.log()。