Use*_*ser 1 javascript validation firefox internet-explorer google-chrome
我使用以下函数进行十进制验证.文本框只允许输入数字和.(点)符号.它在IE和Chrome中工作正常.我的问题是我得到的事件没有定义错误.怎么解决这个问题?我有很多文本框验证.所以我创建十进制验证,就像常见的一样,
//Call the Function
$('.decimalValidate').live('keypress',function(){
var decimalid=$(this).attr("id");
var decimalval=$('#'+decimalid).val();
var decimalvalidate=ApplyDecimalFilter(decimalval);
if(decimalvalidate == false)
return false;
});
Run Code Online (Sandbox Code Playgroud)
//十进制验证的功能.它只允许一个.symbol.everything在IE和Chrome上运行良好
function ApplyDecimalFilter(id)
{
try {
return NewDecimalFilter(id, event);
} catch (e) {
alert(e.message);
}
}
function NewDecimalFilter(o, event) {
if (event.keyCode > 47 && event.keyCode < 58) {
return true;
}
if ((event.keyCode == 8 || event.keyCode == 46) && o.indexOf('.') == -1) {
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我在文本框中使用此decimalValidate类,如,
input type="text" id="InputLoanAmount" class="decimalValidate" style="width:100px"
Run Code Online (Sandbox Code Playgroud)
在Firefox中,event不是全球性的.window.event是undefined.您需要将事件作为参数传递.顺便说一句,你应该使用.on而不是.live使用jQuery> = 1.7.
$('.decimalValidate').live('keypress', function (e) {
var decimalid = $(this).attr("id");
var decimalval = $('#' + decimalid).val();
var decimalvalidate = ApplyDecimalFilter(decimalval, e);
if (decimalvalidate == false) return false;
});
function ApplyDecimalFilter(id, event) {
try {
return NewDecimalFilter(id, event);
} catch (e) {
alert(e.message);
}
}
Run Code Online (Sandbox Code Playgroud)
现场演示.
| 归档时间: |
|
| 查看次数: |
2144 次 |
| 最近记录: |