2012-12-04 54 views
-8

比方說,例如,我有代碼:爲什麼這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> 

哪能類型更改從投入與ID =「電子郵件」內部「VALIDATE_FORM2」的形式?

+4

它改變什麼來代替呢? – Archer

+1

你是如何改變類型的? –

+1

有沒有機會? – robertp

回答

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()文檔

注:jQuery的禁止改變上或元素的類型屬性,並會在所有瀏覽器拋出一個錯誤。這是因爲在Internet Explorer中無法更改type屬性。

另一種方法是創建一個新的輸入與

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

http://jsfiddle.net/uVXvk/

+0

這可能會起作用,但jQuery源代碼顯示「它在IE中導致問題」,因此它們會阻止它。 – pimvdb