我正在尝试验证表单,我正在处理的输入框应该只包含数字。如果用户开始键入任何我希望他们自动删除的字母,显然如果他们输入数字,则不应删除。
这是我的js:
var defaultValue = 10;
$(document).ready(function() {
$('#donation-amount').keyup(function() {
if($(this).val()) {
$('#display-amount').text($(this).val());
} else {
$('#display-amount').text(defaultValue);
$("#default").addClass('active');
$("#btn2").removeClass('active');
$("#btn3").removeClass('active');
}
if (isNaN( $(this).val() )) {
console.log("false")
} else {
console.log("true")
}
});
$( ".selectvalue" ).click(function() {
$('#display-amount').text($(this).val());
});
$(".buttons .btn").click(function(){
$(".buttons .btn").removeClass('active');
$(this).toggleClass('active');
});
$('#display-amount').text($('#default').val());
});
这是我的HTML:
<input type="Custom" name="donation-amount" class="inpt-first form-control" id="donation-amount" onclick="if(this.defaultValue == this.value) this.value = ''" onblur="if(this.value=='') this.value = this.defaultValue" value="Custom">
任何帮助表示赞赏!
答案 0 :(得分:0)
你想要这个吗? See this fiddle
var defaultValue = 10;
$(document).ready(function() {
$('#donation-amount').keyup(function() {
// check if numbers are type
var reg = /^\d+$/;
if(reg.test($(this).val())) {
$('#donation-amount').val($(this).val());
} else {
$('#donation-amount').val(defaultValue);
}
});
});
答案 1 :(得分:0)
不要删除非数字字符,只需先忽略它们,或将输入类型定义为number
。
答案 2 :(得分:0)
您可能希望利用HTML5的<input type="number">
。但是,如果这对您的情况不起作用或者不合适,您可能想尝试使用jQuery的keydown()
函数。
<强> HTML 强>
<input id="inputField" type="text">
<强>的jQuery 强>
$(function () {
$("#inputField").keydown(function (e) {
if (e.which != 0 && e.which != 8 && (e.which < 48 || e.which > 57)) {
$("#quantity").html('').append();
}
});
});
这将检查触发事件的键是否为数字并且在数字键分配范围内。如果触发事件的键与这些条件不匹配,则不给出输出。但是,如果输入符合数值范围,则会将其添加(append()
)到输入字段本身。
值得注意的是,这可以使用标准JavaScript实现:window.addEventListener('keydown', function (e) {});