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