为什么这个jquery选择不起作用?

时间:2012-12-04 15:46:11

标签: jquery

比方说,我有那段代码:

<form id="validate_form2">
    <ul>
        <li>
            <label for="nome">Nome:</label>
            <input id="nome" type="text">
        </li>
        <li>
            <label for="email">Email:</label>
            <input id="email" type="text">
        </li>
        <li>
            <label for="phone">Phone:</label>
            <input id="phone" type="text">
        </li>
    </ul>
</form>

如何在“VALIDATE_FORM2”表单中使用ID ='email'更改INPUT中的TYPE?

1 个答案:

答案 0 :(得分:1)

你可以用jquery这样做 - 必须将它转换回dom元素

$('#email')[0].type = 'password';​​​​​​
// or using .prop $('#email').prop('type','password');​​​​​​

http://jsfiddle.net/68ZPh/

或只是简单的js

document.getElementById('email').type = 'password';

http://jsfiddle.net/tHWwZ/

如评论中所述,这可能会导致IE中出现问题..

来自jQuery .attr() docs

  

注意:jQuery禁止更改或元素上的type属性,并在所有浏览器中抛出错误。这是因为无法在Internet Explorer中更改type属性。

另一种方法是创建一个新的输入来替换它

$('#email').replaceWith('<input type="password" id="email"/>');

http://jsfiddle.net/uVXvk/