【发布时间】:2021-02-26 06:01:36
【问题描述】:
如果值为0,如何隐藏文本框中的值?
我不想隐藏文本框,如果值为0就隐藏该值。
<input type=number value="0"/>
【问题讨论】:
标签: javascript php html jquery laravel
如果值为0,如何隐藏文本框中的值?
我不想隐藏文本框,如果值为0就隐藏该值。
<input type=number value="0"/>
【问题讨论】:
标签: javascript php html jquery laravel
试试这个
function valChange(obj){
if(obj.value=="0"){
obj.style.color="#fff"
} else{
obj.style.color="#000"
}
}
input[value="0"] { color: #fff; }
<input id="num" type=number value="0" onchange="valChange(this);"/>
【讨论】:
#fff。
jQuery 解决方案。
使用三元运算符,您可以轻松实现。
$("#txt").val($("#txt").val() === "0" ? "" : $("#txt").val());
$('#txt').on('input propertychange paste', function() {
$("#txt").val($("#txt").val() === "0" ? "" : $("#txt").val());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="number" value="0" / id="txt">
【讨论】:
此解决方案使用 JavaScript 事件侦听器来侦听输入的更改。每次值更改时,它都会检查该值,如果等于 0,则将输入的颜色设置为透明,否则将其设置回初始值。
document.querySelector('input[type="number"]').addEventListener('change', e => {
if (e.currentTarget.value == 0) {
e.currentTarget.style.color = 'transparent'
} else {
e.currentTarget.style.color = 'initial'
}
})
<input type="number"/>
【讨论】:
答案稍微取决于您存储输入值的方式。但基本上你可以这样做:
<input type="number" value={inputNumber ? inputNumber : NaN} />
你可以使用""或者null来代替NaN,这取决于你对inputNumber的使用并且在启动时将inputNumber初始化为0。
这是有效的,因为当 inputNumber 为 0 时,它是假的,因此输入将接收到 NaN(或“”或 null),这将导致不显示任何内容。
【讨论】: