这是我的Fiddle
最初文本框没有任何价值。
如果输入任何值并且它已清空' 0'将被添加到其中。
但是' 0'输入任何值后都不会被删除。
如何删除' 0'如果输入任何值。
这是我的代码:
$('.qty').keyup(function(){
if($(this).val() == ""){
$('.qty').val('0');
}else if($(this).val() > 0){
$(this).val().replace(0,'');
}
});
答案 0 :(得分: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));
}
}
});
答案 1 :(得分:1)
添加掌上电脑。
$('.qty').attr('placeholder','0');

答案 2 :(得分:0)
如果placeholder
不是一个选项,您可以将值解析为整数:
$('.qty').keyup(function(){
var val = parseInt(this.value, 10);
this.value = val ? val: 0;
});
答案 3 :(得分: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
。
答案 4 :(得分:0)
您可以使用blur
和focus
代替keyup
来实现此目的:
$('.qty').blur(function() {
if (this.value == '') this.value = '0';
}).focus(function() {
if (this.value == '0') this.value = '';
});
答案 5 :(得分: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);
}
});
})
答案 6 :(得分:0)
试试这个,
$('.qty').keyup(function(){
if($(this).val() == ""){
$('.qty').val('');
}else if($(this).val() > 0){
console.log($(this).val());
$(this).val().replace(0,'');
}
});
答案 7 :(得分:0)
使用javascript Number函数
代替0替换为整数值$('.qty').keyup(function(){
if($(this).val() == ""){
$('.qty').val('0');
}else if($(this).val() > 0){
console.log($(this).val());
$(this).val(Number($(this).val()))
}
});