2009-05-21 104 views
1

您好我有一个ajax脚本,用于验证放入文本框的用户信息。这在Internet Explorer中工作正常,但是在FireFox中,从列表框中获取性别时出现错误。我已将性别置于隐藏文本框中,以便于处理。我在FF中得到的错误是在IE /火狐浏览器中的Ajax问题

dd为空 [打破此错误] theindex = dd.options [dd.selectedIndex] .value;

我在javascript函数低于,这被装载在主体负载或一旦选定改变性别,

功能get_gender()其他 {
{

var dd = document.getElementById("gender_select"); 
    theindex = dd.options[dd.selectedIndex].value; 
    thevalue = dd.options[dd.selectedIndex].text; 
    } 

    document.getElementById("gender_text").value = thevalue;  

} 

一个问题,我有一个div盒子,这在任何其他浏览器中都可以正常工作,但IE浏览器无法正常工作。一旦出现错误,它应该只显示div框,但在IE中总是显示div框。

我正在使用这一行来执行此操作: document.getElementById(“username_div”)。style.visibility =“hidden”;

不是粘贴我的代码直播页面可以查看在

http://elliottstocks.com/assignment/sign_up/ 忽略登录框,这工作正常。

任何意见/帮助将不胜感激。非常感谢=)

回答

3

getElementByID要求HTML元素有一个ID,只是名称不够好。

<select name="gender_select" id="gender_select" onChange="get_gender()"> 
    <option>Male</option> <option>Female</option> 
</select> 
2

对于零误差变化:

<select onchange="get_gender()" name="gender_select"> 

<select onchange="get_gender()" name="gender_select" id="gender_select"> 

document.getElementById正在寻找在具有给定id属性的DOM中的元素。它在IE中工作的原因是因为它允许通过name属性进行选择。

+0

我认为这将是简单的东西,谢谢:) – Elliott 2009-05-21 15:09:55

0

对于第二个问题,您可能需要尝试display ='none';为你的元素。请注意,此行为不同于visibility = hidden。

+0

谢谢 但这仍然无法在IE – Elliott 2009-05-22 13:11:52