JQuery – 设置属性值
我有两个具有相同名称的元素的HTML
通过JQuery,我想设置启用复选框。 所以,我使用的是这样的东西:
$('#chk0').attr("disabled",false);
但这不起作用。 我假设JQuery与两个具有相同名称的元素混淆。 不幸的是,我无法避免使用两个不同的名称,因为在发布表单时,我希望所有复选框都被发布(而不仅仅是被检查的复选框)。 因此,我必须使用具有相同名称的隐藏元素。所以,回到问题,如何在上述场景中通过JQuery启用复选框? 是否存在attr的“type”参数,其中distingues隐藏了复选框?
谢谢
实际代码之前的一些事情..
您用作选择器的哈希(#)用于ID,而不用于元素的名称。 还有disabled属性不是真正的错误场景..如果它已禁用属性,则表示它是真的..您需要删除该属性而不将其设置为false。 还有表单选择器,用于标识表单中特定类型的项目。
所以代码就是
$("input:checkbox[name='chk0']").removeAttr('disabled');
使答案保持最新状态
您应该使用.prop()
方法( 自v1.6起添加 )
$("input:checkbox[name='chk0']").prop('disabled', false); // to enable the checkbox
和
$("input:checkbox[name='chk0']").prop('disabled', true); // to disable the checkbox
说真的,不要为此使用jQuery。 disabled
是表单元素的布尔属性,自1997年以来在每个主要浏览器中都能很好地工作,并且没有可能更简单或更直观地更改表单元素是否被禁用。
获取对复选框的引用的最简单方法是给它一个id
。 这是我建议的HTML:
以及启用复选框的JavaScript行:
document.getElementById("chk0_checkbox").disabled = false;
如果您愿意,可以使用jQuery来获取复选框:
$("#chk0_checkbox")[0].disabled = false;
“True”和“False”不起作用,禁用,设置为禁用值。
$('.someElement').attr('disabled', 'disabled');
要启用,请删除。
$('.someElement').removeAttr('disabled');
此外,不要担心选择多个项目,jQuery将对匹配的所有项目进行操作。 如果你只需要一个,你可以使用很多东西:第一,:最后,第n等。
您正在使用名称而不是其他提及的ID – 请记住,如果您使用id有效xhtml,则要求ID是唯一的。
$(“#chk0”)引用id为chk0的元素。 您可以尝试将id添加到元素中。 即使名称相同,ID也是唯一的,因此在jQuery中,您可以通过它的id访问单个元素。
使用ID来唯一标识复选框。 您当前的示例是尝试选择ID为“#chk0”的复选框:
$('#chk0').attr("disabled", "disabled");
您还需要删除已disabled
的属性以启用该复选框。 就像是:
$('#chk0').removeAttr("disabled");
请参阅removeAttr的文档
禁用/启用输入元素的值XHTML如下:
请注意, 缺少启用输入元素的disabled属性。
您可以添加要选择的不同类,或者按类型选择:
$('input[type="checkbox"]').removeAttr("disabled");
- 我如何在jquery中处理多个ajax错误
- 如何在Backbone Views中获取大小(高度/宽度)信息?
- Bootstrap Datepicker限制要选择的可用日期
- PHP / JS / JQUERY:自动检查/更新积分状态的智能方法
- 将数据从Java / JSF2 bean传递到Javascript / jQuery组件作为返回值的最佳方法
- 用于自定义javascript函数的Visual Studio Intellisense
- 在另一个datepicker中更改时无法更改datepicker参数?
- setTimeout不适用于safari mobile
- jQuery得到.text()但不是span中的文本