我正在制作自定义文本输入字段,但在 Internet Explorer 10 中显示的单行输入出现问题(尚未检查其他版本)。当您单击文本输入时,它会执行 onFocus ,它应该将输入背景从显示“在此处键入名称”的图像交换为用户可以在其上键入的更空白的图像。javascript 检查输入是否为空白,如果是,则 onBlur 会将其切换回“此处键入名称”图像,否则它将停留在更空白的图像上。
这一切都适用于除 Internet Explorer 之外的所有浏览器。如果您单击输入(并且不移动光标),它会正确更改背景,但是当您点击按钮开始输入时,它会将背景切换回“在此处输入名称”并且您最终会在顶部显示文本的文本。
我知道这可能很难想象,所以请随意查看这里的问题 www.cutephilosophy.com/contact&stuff.php。
似乎问题在于 Internet Explorer 认为“Focus”和“Blur”的激活方式应该与其他浏览器不同(当然它们是在做自己的事情..)。有谁知道我该如何解决这个问题?我已经尝试过 onClick 而不是 onFocus 并且它是相同的,我也尝试过强制它在 mouseout 或 mouseover 上执行操作以强制解决问题,但似乎没有任何效果。
<---------- CSS -------------------------------->
.nameDiv{
height:59px;
width:582px;
background:url("images/contact/nameField.gif");
background-repeat: no-repeat;
background-position: left top;
}
.nameInput{
background:transparent;
background-repeat: no-repeat;
border:none;
width:235px;
height:59px;
outline:none;
background-color:transparent;
font-family: 'avenirheavy';
font-size:21px;
color:#FFFFFF;
padding-left:95px;
padding-bottom:5px;
}
<----------JAVASCRIPT-------------------------------->
function nameSwap(image){
var nameInput = document.getElementById('nameInput');
if(nameInput.value == ""){
nameInput.style.background = "url(images/contact/"+image+")";
}
}
<----------HTML TEXT FIELD -------------------------------->
<input name="nameInput" type="text" class="nameInput" id="nameInput" onfocus="nameSwap('nameFieldType.gif')" onblur="nameSwap('nameField.gif')"/>