Jquery 我的代码中不允许使用十进制值
我不熟悉jquery。我有两个文本框的表单。因为我是一个特殊的角色。但我要允许十进制值 我实现了十进制代码,但不工作Jquery 我的代码中不允许使用十进制值,jquery,html,Jquery,Html,我不熟悉jquery。我有两个文本框的表单。因为我是一个特殊的角色。但我要允许十进制值 我实现了十进制代码,但不工作 <form> <div class="col-md-6"> <div class="form-group "> <label for="minAmt" class="col-lg-4 control-label">Min.Amount</label> <div class="col-lg-6">
<form>
<div class="col-md-6">
<div class="form-group ">
<label for="minAmt" class="col-lg-4 control-label">Min.Amount</label>
<div class="col-lg-6">
<input type="text" class="form-control minAmt" id="minAmt" name="minAmt" placeholder="Enter Min Amount" />
</div>
</div>
<div class="form-group ">
<label for="maxAmt" class="col-lg-4 control-label">Max.Amount</label>
<div class="col-lg-6">
<input type="text" class="form-control maxAmt" id="maxAmt" name="maxAmt" placeholder="Enter Max Amount" />
</div>
</div>
</div>
</form>
最低金额
最高金额
脚本:
$('.minAmt').keyup(function(e){
if($(this).val() == ""){
$('.minAmt').val('');
}else if($(this).val() > 0){
console.log($(this).val());
$(this).val(Number($(this).val()))
}
var character = String.fromCharCode(e.keyCode)
var newValue = this.value + character;
if (isNaN(newValue) || hasDecimalPlace(newValue, 3)) {
e.preventDefault();
return false;
}
});
function hasDecimalPlace(value, x) {
var pointIndex = value.indexOf('.');
return pointIndex >= 0 && pointIndex < value.length - x;
}
$('.minAmt').keyup(函数(e){
if($(this).val()==“”){
$('.minAmt').val('');
}else if($(this).val()>0){
log($(this.val());
$(this.val)(数字($(this.val()))
}
var character=String.fromCharCode(e.keyCode)
var newValue=this.value+字符;
if(isNaN(newValue)| hasDecimalPlace(newValue,3)){
e、 预防默认值();
返回false;
}
});
函数hasDecimalPlace(值x){
var pointIndex=value.indexOf('.');
返回pointIndex>=0&&pointIndex
我的代码有什么问题?这里的问题是:
var character = String.fromCharCode(e.keyCode)
var newValue = this.value + character;
if (isNaN(newValue) || hasDecimalPlace(newValue, 3)) {
e.preventDefault();
return false;
}
});
在这部法典中
var newValue = this.value + character;
它制造了一些始终是NaN的字符串
因此,它使isNaN(newValue)=始终为真。
if块返回的总是true,因此没有可见的“.”字符
你为什么这样做最好使用正则表达式。
例如,像这样:
是的,使用按键而不是键控键。
函数isNumberKey(evt)
{
var str=evt.target.value;
var res=str.match(/^-?\d*\.?\d*$/g);
如果(res==null){
var specialChar=str.replace(/[!@$%^&*()\=\[\]{};':“\\\\\\,\/?]/gi,”;
event.target.value=specialChar;
var charc=str.replace(/[^a-z]/gi,”);
如果(charc!=“”){
var end=str.indexOf(charc);
var replaceVal=str.substring(0,end);
event.target.value=replaceVal;
}
var negIndex=str.lastIndexOf(“-”);
如果(负指数>0){
var replaceVal1=str.substring(0,负索引);
event.target.value=replaceVal1;
}
var posIndex=str.lastIndexOf(“+”);
如果(posIndex>0){
var replaceVal2=str.substring(0,posIndex);
event.target.value=replaceVal2;
}
}
}
最低金额
最高金额
请检查此项,希望此项工作符合您的要求。您的字符代码检查不允许出现负数