Jquery 在输入任何值后删除文本框中的“0”

Jquery Removing '0' in textbox after any value is entered

本文关键字:文本 输入 任何值 删除 Jquery      更新时间:2023-09-26

这是我的小提琴

最初,文本框没有任何值。

如果输入任何值并清空,则将在其中添加"0"。

但是输入任何值后不会删除"0"。

如果输入了任何值,我如何删除"0"。

这是我的代码:

$('.qty').keyup(function(){
   if($(this).val() == ""){
   $('.qty').val('0');
    }else if($(this).val() > 0){
   $(this).val().replace(0,'');
   }
});

而不是$('.qty').val('0');

添加帕尔塞霍尔德。

$('.qty').attr('placeholder','0');

试试这段代码:

$('.qty').keyup(function(){
   if($(this).val() == ""){
   $('.qty').val('0');
   }else if($(this).val() > 0){
   console.log($(this).val());
   $(this).val().replace(0,'');
   }
    if($(this).val()!=0){
        var text = $(this).val();
        alert(text.slice(0,1));
        if(text.slice(0,1)==0)
        {
            $(this).val(text.slice(1,text.length));   
        }
      }
});

工作演示

如果

placeholder不是一个选项,你可以将值解析为整数:

$('.qty').keyup(function(){
    var val = parseInt(this.value, 10);
    this.value = val ? val: 0;
});

.replace()返回修改后的字符串,则需要将其存储回值中。试试这个:

$('.qty').keyup(function () {
    if ($(this).val() == "") {
        $('.qty').val('0');
    } else if ($(this).val() > 0) {
        console.log($(this).val());
        $(this).val(function() {
            return this.value.replace(/^0+/, '');
        });
    }
});

我还更改了replace()调用以使用正则表达式,因此它只删除输入开头的零。否则,它将102更改为 12

小提琴

您可以使用

blurfocus而不是keyup来实现这一点:

$('.qty').blur(function() {
    if (this.value == '') this.value = '0';
}).focus(function() {
    if (this.value == '0') this.value = '';
});

JSFiddle 示例

试试这个。

<input type="text" name="test" value="0">

$(document).ready(function(){
    var Input = $('input[name=test]');
    var value= Input.val();
    $(Input).focus(function() {
        if($(this).val() == value)
        {
             $(this).val("");
        }
    }).keyup(function(){
        if($(this).val().length == 0)
        {
            $(this).val(value);
        }
    });
})

像这样尝试,

$('.qty').keyup(function(){
   if($(this).val() == ""){
   $('.qty').val('');
   }else if($(this).val() > 0){
   console.log($(this).val());
   $(this).val().replace(0,'');
   }
});

不要替换 0,而是使用 javascript 数字函数替换为整个值

$('.qty').keyup(function(){
   if($(this).val() == ""){
   $('.qty').val('0');
   }else if($(this).val() > 0){
   console.log($(this).val());
   $(this).val(Number($(this).val()))
   }
});

参考 jsFiddle