2011-04-25 72 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