jquery可以't隐藏输入名称为“”的表单;风格”;
jquery can't hide a form with an input name of "style"?
我试图在网站上隐藏一个表单,但它拒绝通过jquery隐藏。我可以手动设置元素的样式属性,但.hide()
不会隐藏它。
考虑这个代码:
$(document).ready(function() {
$('form').hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input name="style_name" value="small" type="hidden">
<p>I AM hidden</p>
</form>
<form>
<input name="style" value="small" type="hidden">
<p>I should be hidden</p>
</form>
基本上,如果有一个名称为"style"的输入,它就无法隐藏表单。如果输入有不同的名称,它会很好地隐藏它。
发生这种情况有原因吗?
表单中输入元素的"name"属性用于填充表单DOM节点上的属性。您的名称"style"将覆盖表单的"style"属性,这意味着jQuery无法再访问本机样式对象。它需要这样做才能隐藏表单。
请注意,使用CSS仍然可以做到这一点。
$(document).ready(function() {
$('form').addClass("hidden");
});
CSS:
.hidden { display: none; }
那些隐含地践踏名称空间的旧习惯可以追溯到浏览器技术的早期。很难想象现在有人会认为这是一个好主意,至少如果没有一些合格的子空间(比如form.fields
之类的)。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何使用WCF服务和javascript表单post上传.doc文件
- Javascript生成的表单未提交
- 如何使用javascript或html下载PDF格式的填写表单
- HTML表单提交时未执行外部函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- Ajax发布表单序列化,发布引号'
- 多级HTML表单
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 在验证和发送邮件后更改联系人表单的 html
- jQuery表单添加不适用于下拉列表
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- 如何从pdftron webviewer获取表单数据
- JS验证ajax返回的html中的表单数据
- Javascript更新孙窗口中的表单元素
- 解析javascript表单验证器
- jquery可以't隐藏输入名称为“”的表单;风格”;
- "Gmail风格”;web表单的部分更新
- 使用jQuery和Ajax的Twitter风格注册表单