如果我有此代码:
<input style="background: src(mybackgroundimage.png) no-repeat right" type="text">
如果用户输入文本框中的某些内容,我该如何使背景消失。
您可以使用输入事件:
// Assuming: <input class="inp" id="inp" type="text">
document.getElementById('inp').addEventListener('input', function() {
if (this.value) {
this.style.background = 'none';
}
}, false);
注意:IE9 。
演示:http://jsfiddle.net/n3kar/
如果您需要支持,则可以做这样的事情:
var inp = document.getElementById('inp');
inp.addEventListener('change', clearBackground, false);
inp.addEventListener('paste', clearBackground, false);
inp.addEventListener('keyup', clearBackground, false);
function clearBackground() {
this.style.background = 'none';
}
演示:http://jsfiddle.net/n3kar/1/
<input style="background: src(mybackgroundimage.png) no-repeat right" type="text" onchange="bg(this)">
<script>
function bg(obj) { obj.style.background = "none"; }
</script>
由于这仍然出现在Google上一块html。
<input type="text" id="myinput" placeholder="search..." />
占位符现在是现代浏览器的标准配置,因此这确实是首选方法。
<input name="Name" value="Enter Your Name"
onfocus="(this.value == 'Enter Your Name') && (this.value = '')"
onblur="(this.value == '') && (this.value = 'Enter Your Name')" />
工作小提琴
您可以观看键盘活动的输入并切换背景样式:
<input type="text" style="background: green" onkeyup="modifyBackground(this)">
function modifyBackground(elem){
if( elem.value !== "" ){
elem.style.background = "gray";
} else {
elem.style.background = "green";
}
}
小提琴
或使用jQuery:
$('input').keyup(function(e){
if($(this).val() !== ""){
$(this).css('background','gray');
} else {
$(this).css('background','green');
}
}).trigger('keyup');
再次清空时,这将正确重置背景,并将触发页面加载函数,以便自动设置其默认颜色。
小提琴
您也可以尝试。
function disappearImg(inputElem){
inputElem.style.backgroundImage= "none";
}
</script>
<input type="text" onkeydown="disappearImg(this)" style="background: src(mybackgroundimage.png) no-repeat right">