0

我尝试了几天让它在 IE 中工作,最终放弃了,向用户展示了一个警告窗口,警告用户该表单在 IE 中不能完全工作。然而,人们仍在使用 IE 填写表格,我不得不与他们来回发送电子邮件以完成他们的注册,所以我想看看我是否真的可以解决原来的问题。我在这里有一个很长的活动登记表:

http://rhythmshuffle.com/RS2013/Register.html

我决定通过在用户单击各种复选框时显示表单元素来处理表单的长度,例如表单最底部的外壳部分。这是javascript:

function togglehide(thiselem) {
  var item = document.getElementById(thiselem);
  if (item) {if (item.className == 'unhidden') {item.className='hidden';} else {item.className='unhidden';}}
}

这是相关的CSS:

.hidden {display: none; overflow: hidden; border: none; text-decoration: none; background: transparent;}
.unhidden {display: block; overflow: auto; border: none; text-decoration: none; background: transparent;}

这是html的一个例子:

<input type="checkbox" name="housing" value="yes" onClick="javascript:togglehide('housingrequest')"/>
<div id=housingrequest class=hidden>
  whatever - more form elems...
</div>

有谁知道如何在 IE 中进行这项工作?当我最初研究这个时,我搜索了 Stack Overflow。我尝试了一些建议,这些建议是针对类似但略有不同的问题的答案,但没有一个对我有用(我会告诉你我尝试了什么,但现在不记得了)。

谢谢,罗伯

更新:我确认自己的代码在 IE 9 和 10 中有效(尽管其他测试人员告诉我)。所以这个问题专门针对 IE 8 及以下版本。显然,我的一些用户仍在使用过时版本的 IE。事实上,一个人更喜欢打印我发给她的屏幕截图,以邮寄给我注册,而不是安装任何其他最新的浏览器!

4

1 回答 1

0

首先给输入一个id:

<input id="test" type="checkbox" name="housing" value="yes"/>
<div id="housingrequest" class="hidden">
  whatever - more form elems...
</div>

然后使用这个 jquery 代码:

$("input#test").click(function(){
    if($(this).is(":checked")){
        $("div#housingrequest").show();
    }
    else{
        $("div#housingrequest").hide();
    }
});
于 2013-06-20T17:43:06.880 回答