Javascript 如果输入字段不是数字或不为空,则替换为数字
我有一个输入字段,我正在使用.on('input')函数监视更改,因为它包括.change和.keyup 没有提交按钮,但我只是想改变输入字段的行为,取决于输入的内容 稍后我将验证服务器端,我使用的是html5 type='number' 我只希望字段能够容纳一个数字,也可以是空的。例如,用户可能希望清空内容以键入数字15 但是,我不希望接受任何其他字符-如果输入了这些字符,将显示一个提示,通知用户这一点,并且该字段默认返回其起始值1 HTMLJavascript 如果输入字段不是数字或不为空,则替换为数字,javascript,jquery,regex,input,replace,Javascript,Jquery,Regex,Input,Replace,我有一个输入字段,我正在使用.on('input')函数监视更改,因为它包括.change和.keyup 没有提交按钮,但我只是想改变输入字段的行为,取决于输入的内容 稍后我将验证服务器端,我使用的是html5 type='number' 我只希望字段能够容纳一个数字,也可以是空的。例如,用户可能希望清空内容以键入数字15 但是,我不希望接受任何其他字符-如果输入了这些字符,将显示一个提示,通知用户这一点,并且该字段默认返回其起始值1 HTML JS $(文档).ready(函数($){ v
JS
$(文档).ready(函数($){
var num=$('input[type=“number”]”)。val();
$('input[type=“number”]”)。在('input',函数(){
var num=$(this.val();
如果(num<1 | | isNaN(num)| | num!=''){
警报(num+'不是数字或小于1');
$(此).val(1);
}
});
});
我试过上面的代码,它不允许空字段。我还尝试了if(num<1 | | isNAN(num)| | num.length!=0){
我是否需要用Regexr来使用.replace()
。我一直在看一些问题,比如,但考虑到我正在测试一个空字符串,我不确定这就是我要找的
您可以使用:
$('input[type=“number”])。在('input',函数(){
如果(!this.validity.valid){
警报(this.value+'不是数字或小于1');
这个值=1;
}
});
您可以使用:
$('input[type=“number”])。在('input',函数(){
如果(!this.validity.valid){
警报(this.value+'不是数字或小于1');
这个值=1;
}
});
您可以使用:
$('input[type=“number”])。在('input',函数(){
如果(!this.validity.valid){
警报(this.value+'不是数字或小于1');
这个值=1;
}
});
您可以使用:
$('input[type=“number”])。在('input',函数(){
如果(!this.validity.valid){
警报(this.value+'不是数字或小于1');
这个值=1;
}
});
HTML5的答案肯定更优雅
但是如果你想提供更多的支持,这通常是我在尝试验证数字时采用的方法
请注意,我使用的是data min
属性,但如果您想切换,可以始终使用$.attr()
获取您的min=“
属性
$(document).ready(function ($) {
$('input[type="number"]').on('change', function () {
var min = parseInt(this.dataset.min),
num = isNaN(parseInt(this.value)) ? 0 : parseInt(this.value),
clamped = Math.max(num, min);
if(num != clamped) {
alert(num + ' is less than 1');
this.value = clamped;
}
});
});
HTML5的答案肯定更优雅
但是如果你想提供更多的支持,这通常是我在尝试验证数字时采用的方法
请注意,我使用的是data min
属性,但如果您想切换,可以始终使用$.attr()
获取您的min=“
属性
$(document).ready(function ($) {
$('input[type="number"]').on('change', function () {
var min = parseInt(this.dataset.min),
num = isNaN(parseInt(this.value)) ? 0 : parseInt(this.value),
clamped = Math.max(num, min);
if(num != clamped) {
alert(num + ' is less than 1');
this.value = clamped;
}
});
});
HTML5的答案肯定更优雅
但是如果你想提供更多的支持,这通常是我在尝试验证数字时采用的方法
请注意,我使用的是data min
属性,但如果您想切换,可以始终使用$.attr()
获取您的min=“
属性
$(document).ready(function ($) {
$('input[type="number"]').on('change', function () {
var min = parseInt(this.dataset.min),
num = isNaN(parseInt(this.value)) ? 0 : parseInt(this.value),
clamped = Math.max(num, min);
if(num != clamped) {
alert(num + ' is less than 1');
this.value = clamped;
}
});
});
HTML5的答案肯定更优雅
但是如果你想提供更多的支持,这通常是我在尝试验证数字时采用的方法
请注意,我使用的是data min
属性,但如果您想切换,可以始终使用$.attr()
获取您的min=“
属性
$(document).ready(function ($) {
$('input[type="number"]').on('change', function () {
var min = parseInt(this.dataset.min),
num = isNaN(parseInt(this.value)) ? 0 : parseInt(this.value),
clamped = Math.max(num, min);
if(num != clamped) {
alert(num + ' is less than 1');
this.value = clamped;
}
});
});
isNAN
应该是isNAN
我只需强制该值在您的参数范围内。我将在稍后发布答案。@VenkataPanga thx已更新问题,但仍然fails@Evilzebra好的,谢谢this.validity.valid
足以检查html5元素的有效类型chekcingisNAN
应该是isNAN
我只想强制值在您的参数范围内。我会马上发布答案。@VenkataPanga thx更新了问题,但仍然fails@Evilzebra好的,谢谢this.validity.valid
足以检查html5元素的有效类型chekcingisNAN
应该是isNAN
我只需强制该值为hin您的参数。我马上发布答案。@VenkataPanga thx更新了问题,但仍然fails@Evilzebra好的,谢谢this.validity.valid
足以检查html5元素的有效类型chekcingisNAN
应该是isNAN
我只需强制该值在您的参数内。我会在片刻。@VenkataPanga thx已更新问题,但仍然fails@Evilzebra好的,谢谢this.validity.valid
足以检查html5元素的有效类型chekcings查看Insights谢谢Insights谢谢Insights谢谢Insights谢谢Insights