用jQuery更改输入字段的类型

用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>


茅侃侃
浏览 627回答 3
3回答

吃鸡游戏

作为浏览器安全模型的一部分,很可能会防止此操作。编辑:实际上,现在Safari中进行测试,我得到了错误type property cannot be changed.编辑2:这似乎是jQuery中的一个错误。使用以下直接DOM代码可以很好地工作:var&nbsp;pass&nbsp;=&nbsp;document.createElement('input');pass.type&nbsp;=&nbsp;'password';document.body.appendChild(pass);pass.type&nbsp;=&nbsp;'text';pass.value&nbsp;=&nbsp;'Password';编辑3:直接从jQuery源代码来看,这似乎与IE有关(可能是bug,也可能是其安全模型的一部分,但jQuery并不具体)://&nbsp;We&nbsp;can't&nbsp;allow&nbsp;the&nbsp;type&nbsp;property&nbsp;to&nbsp;be&nbsp;changed&nbsp;(since&nbsp;it&nbsp;causes&nbsp;problems&nbsp;in&nbsp;IE)if&nbsp;(&nbsp;name&nbsp;==&nbsp;"type"&nbsp;&&&nbsp;jQuery.nodeName(&nbsp;elem,&nbsp;"input"&nbsp;)&nbsp; &&&nbsp;elem.parentNode&nbsp;) &nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;"type&nbsp;property&nbsp;can't&nbsp;be&nbsp;changed";

慕姐8265434

一步解$('#password').get(0).type&nbsp;=&nbsp;'text';
打开App,查看更多内容
随时随地看视频慕课网APP