2011-04-25 91 views
0

我有幾個不同的ID,但具有相同的輸入名稱和ID的形式。例如:IE7上的JQuery選擇器問題的輸入標籤

<form id="form1> 
    <input name="email" id="email" value="[email protected]"/> 
    ..... 
</form> 
<form id="form2> 
    <input name="email" id="email" value="[email protected]"/> 
    ..... 
</form> 

而在我的jquery ready函數中我有下面的代碼。這在FireFox,Chrome中工作正常,但不在IE7中。這是一個警報函數,在FireFox,Chrome中將電子郵件的值顯示爲「[email protected]」,但IE7顯示爲「未定義」。有什麼建議麼?

$(document).ready(function() { 
     alert($("#form1 #emailAddress").val()); 
    }); 

回答

4

重複的ID是無效的,我不會對任何選擇的過濾統計當前,過去上班,或者未來版本的jQuery。這些元素不應該有ID,並且應該按名稱選擇它們。

e.g:

$('#form1 [name=email]')
$('#form2 [name=email]')

+0

fiddled http://jsfiddle.net/62m3y/選擇器過濾在過去和當前版本的jquery中都起作用,並且很可能會繼續工作。雖然它可能不是最佳實踐而不必對設計進行更改,但它確實有效。 – Patrick 2011-04-25 18:40:15

+0

@Patrick:嘗試alert($(「#form2> #email」).val());這將失敗 – jgg 2011-04-25 18:55:12

-2

看到你輸入姓名和身份證都是簡單的「郵件」 ......在你的選擇你有EMAILADDRESS ...這是要給你一個未定義的。

試着這麼做

$(document).ready(function() {   
alert($("#form1>#email").val());  
}); 
0
$(document).ready(function() { 
     alert($("#email","#form1").val()); 
}); 

測試此代碼

+0

是什麼問題? – 2011-04-25 18:37:59