使用jQuery引用数组中的表单字段
我有一个类似以下内容的HTML表单:使用jQuery引用数组中的表单字段,jquery,html,forms,Jquery,Html,Forms,我有一个类似以下内容的HTML表单: <td><input type='checkbox' id='a[] '><input type='text' id='b[]'></td> <td><input type='checkbox' id='a[] '><input type='text' id='b[]'></td> 在jQuery函数中,我希望在单击复选框时启用/禁用关联的输入文本input
<td><input type='checkbox' id='a[] '><input type='text' id='b[]'></td>
<td><input type='checkbox' id='a[] '><input type='text' id='b[]'></td>
在jQuery函数中,我希望在单击复选框时启用/禁用关联的输入文本input-b
我不确定如何在使用数组时在jQuery.click()函数中单独引用每个字段
任何帮助都将不胜感激 如果您有重复的ID,则HTML无效。给他们唯一的ID,这样你的HTML就再次有效,你的问题也就解决了。如果你有重复的ID,你的HTML就无效了。给他们唯一的ID,这样你的HTML再次有效,你的问题也就解决了。试试这个(我肯定有更简洁的方法,但我这里没有IntelliSense lol) 试试这个(我肯定有更简洁的方法,但我这里没有智能感知lol)
与Thomas的概念类似,但在页面加载时执行,并抛出.focus(),以便更好地衡量:
$(function(){
var toggleState = function(){
if($(this).is(':checked'))
$(this).next('[name="b"]').removeAttr('disabled').focus();
else
$(this).next('[name="b"]').attr('disabled','disabled');
};
//bind event and fire off on page load
$('input[name="a"]').bind('click',toggleState).each(toggleState);
})
另外,你不应该有重复的ID。。。按类使用名称属性或目标
<table>
<tr><td><input type='checkbox' name='a'><input type='text' name='b'></td></tr>
<tr><td><input type='checkbox' name='a'><input type='text' name='b'></td></tr>
</table>
与Thomas的概念类似,但在页面加载时执行,并抛出一个.focus()
$(function(){
var toggleState = function(){
if($(this).is(':checked'))
$(this).next('[name="b"]').removeAttr('disabled').focus();
else
$(this).next('[name="b"]').attr('disabled','disabled');
};
//bind event and fire off on page load
$('input[name="a"]').bind('click',toggleState).each(toggleState);
})
另外,你不应该有重复的ID。。。按类使用名称属性或目标
<table>
<tr><td><input type='checkbox' name='a'><input type='text' name='b'></td></tr>
<tr><td><input type='checkbox' name='a'><input type='text' name='b'></td></tr>
</table>
删除
禁用属性以启用输入。将disabled
属性设置为任何值(通常为“disabled”),以禁用输入。设置disabled=”“
不够好,仅属性的存在就禁用了输入。您必须删除该属性
$("input[type=checkbox]").click(function()
{
if (this.checked) $(this).next().removeAttr("disabled");
else $(this).next().attr("disabled", "disabled");
});
删除禁用的属性以启用输入。将disabled
属性设置为任何值(通常为“disabled”),以禁用输入。设置disabled=”“
不够好,仅属性的存在就禁用了输入。您必须删除该属性
$("input[type=checkbox]").click(function()
{
if (this.checked) $(this).next().removeAttr("disabled");
else $(this).next().attr("disabled", "disabled");
});
干杯,德里克。后来我把它改成了课堂目标。我注意到你从名字中删除了[],这是我最大的问题。在仍然使用数组的情况下是否可以执行此操作?是的,如果要按类设置目标,则可以将名称保留为数组。您可能可以使用带括号的name属性作为目标,但我相信通过类名作为目标更有效。检查原始的JSFIDLE链接以获得更新的代码,从而利用类定向的欢呼声Derek。后来我把它改成了课堂目标。我注意到你从名字中删除了[],这是我最大的问题。在仍然使用数组的情况下是否可以执行此操作?是的,如果要按类设置目标,则可以将名称保留为数组。您可能可以使用带括号的name属性作为目标,但我相信通过类名作为目标更有效。检查原始JSFIDLE链接以获取更新的代码,从而利用类定位