2014-12-04 38 views
0

這裏是jQuery的文本中刪除「0」我Fiddle後輸入任何值

最初的文本框將沒有任何價值。

如果輸入任何值並且它被清空,那麼將會添加'0'。

但輸入任何值後,'0'不會被刪除。

如何刪除'0'如果有任何值被輸入它。

這裏是我的代碼:

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

最好使用'placeholder'與整個價值取代。 – Jai 2014-12-04 12:24:38

+0

我不需要佔位符。當值爲空時,我想在輸入值後刪除'0'。 – 2014-12-04 12:25:47

+0

http:// jsfiddle。net/r1fvoqz8/12/ – 2014-12-04 12:32:47

回答

0

如果placeholder是不是一種選擇,你可以解析值整數:

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

請提供我在小提琴鏈接 – 2014-12-04 12:30:36

+1

@faizphp ***等待***,你必須顯示最小的努力,再見! – 2014-12-04 12:31:26

+0

@faizphp http://jsfiddle.net/atate143/r1fvoqz8/7/ – Amy 2014-12-04 12:34:08

1

試試這個代碼:

$('.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)); 
     } 
     } 
}); 

Working Demo

+1

由於輸入任何其工作的偉大 – 2014-12-04 12:39:01

+0

如果它是你應該接受的答案:) – Amy 2014-12-04 12:42:37

+0

@Amy對不起,太曳你的答案是有用的,但是是不是真的簡單的解決辦法:HTTP: //jsfiddle.net/0kgebyor/ ???順便說一句,現在懶惰OP得到他的jsFiddle ... – 2014-12-04 12:44:43

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

fiddle

+0

其工作僅適用於數字 – Amy 2014-12-04 12:33:13

+0

這似乎是原始代碼的意圖。 – Barmar 2014-12-04 12:34:14

+0

他沒有提到他只希望只在問題 – Amy 2014-12-04 12:35:10

1

代替 $(」數量。 ')VAL(' 0' )。

添加palceholder。

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

+0

回答 – Amy 2014-12-04 12:35:40

+0

照顧下一次前閱讀評論數。謝謝。 – BCoder 2014-12-04 13:10:41

0

你可以做到這一點使用blurfocus代替keyup

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

JSFiddle example

0

試試這個..

<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); 
     } 
    }); 
}) 
0

嘗試這樣,

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

只需要在$('。qty')中刪除零。val('0'); – soundhiraraj 2014-12-04 12:37:20

0

而是代替0,使用JavaScript Number函數

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

refer jsFiddle