3

由于某种原因<form>,我的页面上的 a 不会使用 jQuery 隐藏/显示。我的表单中有其他内容,例如<div>s 和<table>s,但我已将其隔离为这两个破坏它的输入字段:http: //jsfiddle.net/3SDvm/2/

<form>
    <div>Random text</div>
<input id="multi" type="radio" name="style" value="checkbox"/>
    <label for="multi">Multiple options</label>

<input id="single" type="radio" name="style" value="radio" />
    <label for="single">Single option</label>
</form>​
$(document).ready(function() {
   $('form').slideUp(); 
});​

这是正常行为,还是我做错了什么?在 Chrome/IE/FF/Safari 上测试..

4

3 回答 3

5

使用 div 将表单内容括起来并隐藏/显示该 div。我更新了你的小提琴:http: //jsfiddle.net/davidbuzatto/3SDvm/7/

使用 DerWaldschrat 解决方案,每个孩子都将被单独隐藏/显示,从而弄乱您想要的行为。

编辑:我用三种方法再次更新了小提琴,以选择内部 div 并将其向上滑动。看看:http: //jsfiddle.net/davidbuzatto/3SDvm/9/

于 2012-08-08T12:57:15.533 回答
4

不要隐藏表单,它是一个没有真实外观的元素,而是尝试隐藏所有子元素:

$("form *").hide();
于 2012-08-08T12:51:39.370 回答
2

任何时候,只要您使用与父表单本身的属性或方法匹配的表单字段名称,就会发生这种情况。这包括样式,还包括 id、action、submit、length 等。jQuery 试图解决这个问题,但仍有可能发生这种情况。有关更多技术细节,请参见此处: http: //kangax.github.com/domlint/

于 2012-08-09T12:29:25.550 回答