为了账号安全,请及时绑定邮箱和手机立即绑定

用jQuery更改输入字段的类型

用jQuery更改输入字段的类型

茅侃侃 2019-06-23 17:06:31
用jQuery更改输入字段的类型$(document).ready(function() {     // #login-box password field     $('#password').attr('type', 'text');     $('#password').val('Password');});这应该会改变#password输入字段id="password")那是.type 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>
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

作为浏览器安全模型的一部分,很可能会防止此操作。

编辑:实际上,现在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";


查看完整回答
反对 回复 2019-06-23
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

一步解

$('#password').get(0).type = 'text';


查看完整回答
反对 回复 2019-06-23
  • 3 回答
  • 0 关注
  • 592 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信