我有以下简单的脚本
<input class="input" type="text" name="password" style="color: #797272;"
value= "<?php if ($_POST[password] != '') {echo '';}
else {echo 'Ծածկաբառ';}?>"
onclick="if (this.value === this.defaultValue) {
this.value='';
this.style.color='black';
this.type='password';
}"
/>
它工作正常,但在IE7中它不会改变输入类型。
this.type='password'; doesn't work
你可以帮帮我吗?感谢
如果我想在输入中显示默认值,我该怎么办?
答案 0 :(得分:2)
遗憾的是,IE不允许input
标记更改为密码类型或从密码类型更改。很烦人。 '他们'说这是出于安全原因,但每个其他浏览器都允许它......
答案 1 :(得分:2)
您无法在Internet Explorer中使用JS更改输入类型,并且您采用的方法还有其他含义(例如可访问性问题)。
采用不同的方法并定位label
元素可以避免更改字段的问题并大大减少可访问性问题。我写了一个例子:http://dorward.me.uk/tmp/label-work/example.html
答案 2 :(得分:1)
你根本无法在IE中执行此操作,它不允许您在将类型添加到DOM后更改类型。为此,您必须完全替换输入。
从Microsoft Internet Explorer 5开始,type属性是read / write-once,但仅在使用createElement方法创建输入元素时以及在将其添加到文档之前。
答案 3 :(得分:1)
如果它在IE 6中,似乎你无法改变类型......但是你可以替换整个元素:
http://bytes.com/topic/javascript/answers/705445-dynamically-change-input-type-text-password
答案 4 :(得分:0)
我找到的唯一一个解决方案,它工作正常
function change()
{
var input=document.getElementById('some');
var input2= input.cloneNode(false);
input2.type='password';
input.parentNode.replaceChild(input2,input);
}