Javascript 将输入字段限制为一个小数点和两个小数点
我有一个限制为6个字符的输入字段。如何验证输入字段,以便用户不能输入超过一个小数点(即19..12),并且只能输入两位小数点(即19.123) 这是我的输入字段Javascript 将输入字段限制为一个小数点和两个小数点,javascript,Javascript,我有一个限制为6个字符的输入字段。如何验证输入字段,以便用户不能输入超过一个小数点(即19..12),并且只能输入两位小数点(即19.123) 这是我的输入字段 <input type="text" name="amount" id="amount" maxlength="6" autocomplete="off"/><span class="paymentalert" style="color:red;"></span> 这是我的验证脚本 $(func
<input type="text" name="amount" id="amount" maxlength="6" autocomplete="off"/><span class="paymentalert" style="color:red;"></span>
这是我的验证脚本
$(function(){
$("#amount").keypress( function(e) {
var chr = String.fromCharCode(e.which);
if (".1234567890NOABC".indexOf(chr) < 0)
return false;
});
});
$("#amount").blur(function() {
var amount = parseFloat($(this).val());
if (amount) {
if (amount < 40 || amount > 200) {
$("span.paymentalert").html("Your payment must be between £40 and £200");
} else {
$("span.paymentalert").html("");
}
} else {
$("span.paymentalert").html("Your payment must be a number");
}
});
$(函数(){
$(“#金额”)。按键(功能(e){
var chr=String.fromCharCode(e.which);
如果(“.1234567890NOABC”.indexOf(chr)<0)
返回false;
});
});
$(“#金额”).blur(函数(){
var amount=parseFloat($(this.val());
如果(金额){
如果(金额<40 | |金额>200){
$(“span.paymentalert”).html(“您的付款必须介于40英镑和200英镑之间”);
}否则{
$(“span.paymentalert”).html(“”);
}
}否则{
$(“span.paymentalert”).html(“您的付款必须是数字”);
}
});
约拿这应该是:
var ok = /^\d*\.?\d{0,2}$/.test(input);
(如果我正确理解您不希望圆点后的数字超过2位)
因此,守则将是:
$("#amount").blur(function() {
var input = $(this).val();
if (/^\d*\.?\d{0,2}$/.test(input)) {
var amount = parseFloat(input);
if (amount < 40 || amount > 200) {
$("span.paymentalert").html("Your payment must be between £40 and £200");
} else {
$("span.paymentalert").html("");
}
} else {
$("span.paymentalert").html("Your payment must be a number");
}
});
$(“#金额”).blur(函数(){
var输入=$(this.val();
if(/^\d*\.?\d{0,2}$/.test(输入)){
var金额=浮动(输入);
如果(金额<40 | |金额>200){
$(“span.paymentalert”).html(“您的付款必须介于40英镑和200英镑之间”);
}否则{
$(“span.paymentalert”).html(“”);
}
}否则{
$(“span.paymentalert”).html(“您的付款必须是数字”);
}
});
这应该可以:
var ok = /^\d*\.?\d{0,2}$/.test(input);
(如果我正确理解您不希望圆点后的数字超过2位)
因此,守则将是:
$("#amount").blur(function() {
var input = $(this).val();
if (/^\d*\.?\d{0,2}$/.test(input)) {
var amount = parseFloat(input);
if (amount < 40 || amount > 200) {
$("span.paymentalert").html("Your payment must be between £40 and £200");
} else {
$("span.paymentalert").html("");
}
} else {
$("span.paymentalert").html("Your payment must be a number");
}
});
$(“#金额”).blur(函数(){
var输入=$(this.val();
if(/^\d*\.?\d{0,2}$/.test(输入)){
var金额=浮动(输入);
如果(金额<40 | |金额>200){
$(“span.paymentalert”).html(“您的付款必须介于40英镑和200英镑之间”);
}否则{
$(“span.paymentalert”).html(“”);
}
}否则{
$(“span.paymentalert”).html(“您的付款必须是数字”);
}
});
如果您使用for jQuery,将更容易。如果您使用for jQuery,将更容易。假设:
var value = $(this).val;
value.match(/^\d{2,3}(\.\d{2})?$/i);
假设:
var value = $(this).val;
value.match(/^\d{2,3}(\.\d{2})?$/i);
两个问题:(1)您是否希望这样,如果它们有一个小数点,则后面必须有两位数字?(2) 从您的错误消息中,小数点前必须至少有2位,但不得超过3位,对吗?是否有不使用的原因?@talemyn 1)是2)正确。好的。答复如下:)@matt ball我想保持它的简单性,并将javascript放在一个函数中。两个问题:(1)你想让它这样,如果它们有一个小数点,后面必须有两位数字吗?(2) 从您的错误消息中,小数点前必须至少有2位,但不得超过3位,对吗?是否有不使用的原因?@talemyn 1)是2)正确。好的。答复如下:)@matt ball我想保持它的简单性,并将javascript放在一个函数中。我将把它放在脚本中的什么位置?我将把它放在脚本中的什么位置?