使用jQuery ...jQuery和嵌套元素
我希望能够把父DIV,并通过搜索任何内部元件,用于查找任何地方在父元素嵌套在特定的元素。
然后我以这些元素,并通过他们的搜索和基于其数值,禁用/启用不同的元素...
我也想这样做的方式,这样我可以有多个套家长的div允许功能在其内的特定元素相同的方式工作...
所以如果我有...
<div class="parent">
<table>
<tr>
<td>
<input type="text" />
</td>
</tr>
<tr>
<td>
<input type="text" />
</td>
</tr>
<tr>
<td>
<input type="text" />
</td>
</tr>
<tr>
<td>
<input type="submit" />
</td>
</tr>
</table>
</div>
<div class="parent">
<table>
<tr>
<td>
<input type="text" />
</td>
</tr>
<tr>
<td>
<input type="text" />
</td>
</tr>
<tr>
<td>
<input type="text" />
</td>
</tr>
<tr>
<td>
<input type="submit" />
</td>
</tr>
</table>
</div>
任何变化,我做的第一组文本的框将启用/禁用t的提交按钮他第一组......和第二组相同。
现在我有jQuery的设置,使得它的工作原理,如果他们没有嵌套在比设置父div的类SubmitDisable父DIV更远的地方....
$(document).ready(function() {
$('.SubmitDisable > input[type=submit]').attr('disabled', 'disabled');
$('.SubmitDisable > input[type=text], input[type=textarea]').keyup(function() {
$(this).siblings('input[type=submit]').removeAttr('disabled');
$.each($(this).parent().children('input[type=text], input[type=textarea]'), function() {
if ($(this).val() == "") {
$(this).siblings('input[type=submit]').attr('disabled', 'disabled');
}
});
});
});
有什么想法?最终,我希望能够使用此jquery的任何页面,并围绕一组文本框并提交按钮,它会导致按钮(s)禁用,如果所有的文本框在同一个“组”未填写。
为了帮助直观了解这个需要的功能我添加的代码假设块,可能对这个
<div class="SubmitDisable">
<div><div><div><input type="text" /></div></div></div>
<div><table><tr><td><div><input type="text" /></div></td></tr></table>
<span><div><b><input type="text" /></b></div></span>
<input type="submit" />
</div>
现在说实话那种建立将是可怕的坏测试首先设计......但我并不总是会控制设计。在这种情况下,如果您需要检查3个文本框中的任意一个,确保所有数据都有数据,如果它们都有数据,则启用提交(如果不是其禁用)。
如果您可以在窗体而不是div上执行相同类型的搜索,问题会变得更加简单。你想用div而不是表单吗? – 2009-09-15 18:30:22
是的......每个组都需要在功能 – Patrick 2009-09-15 18:32:02