使用jQuery更改输入字段的类型

$(document).ready(function() {

// #login-box password field

$('#password').attr('type', 'text');

$('#password').val('Password');

});

这应该将的#password输入字段(带有id="password")更改typepassword为普通的文本字段,然后填写文本“

Password”。

但是,它不起作用。为什么?

形式如下:

<form enctype="application/x-www-form-urlencoded" method="post" action="/auth/sign-in">

<ol>

<li>

<div class="element">

<input type="text" name="username" id="username" value="Prihlasovacie meno" class="input-text" />

</div>

</li>

<li>

<div class="element">

<input type="password" name="password" id="password" value="" class="input-text" />

</div>

</li>

<li class="button">

<div class="button">

<input type="submit" name="sign_in" id="sign_in" value="Prihlásiť" class="input-submit" />

</div>

</li>

</ol>

</form>

回答:

很可能在浏览器的安全模型中阻止了此操作。

编辑:确实,现在在Safari中进行测试,我得到了错误type property cannot be changed

编辑2:这似乎是jQuery的错误。使用以下简单的DOM代码就可以了:

var pass = document.createElement('input');

pass.type = 'password';

document.body.appendChild(pass);

pass.type = 'text';

pass.value = 'Password';

编辑3:直接来自jQuery来源,这似乎与IE有关(可能是bug或其安全模型的一部分,但jQuery并非特定):

// We can't allow the type property to be changed (since it causes problems in IE)

if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )

throw "type property can't be changed";

以上是 使用jQuery更改输入字段的类型 的全部内容, 来源链接: utcz.com/qa/397685.html

回到顶部