我有一个包含几组单选按钮和几个输入文本的表单,在每组之后,无论是单选按钮还是文本,都有一个按钮来保存每组的更改。
我想要做的是,使用 jQuery,为 onchange 事件添加一个处理程序,以便启用每组收音机(和文本)的下一个按钮。
html是这样的:
Antig.<input type="text" name="anosAntiguedad" id="anosAntiguedad" >
<div id='guardan' style="display:<?= $mostrar?>">
<input type="button" value="Guardar" onclick="modifica('anosAntiguedad')" />
</div>
<input type="radio" name="viveCasa" id="viveCasa" value="Propia" >Propia
<input type="radio" name="viveCasa" id="viveCasa" value="Rentada" >Rentada
<input type="radio" name="viveCasa" id="viveCasa" value="Familiares" >Familiares
<div id='guardan' >
<input type="button" value="Guardar" onclick="modifica('viveCasa')" />
</div>
我已经有了输入文本所需的行为,并且我已经使用 jQuery 在每个文本的更改上激活了相应的保存按钮。像这样:
$('input:text')
.bind('change ',function(){
$(this).next("div").children(":button")
.attr("disabled",false);
});
但是,如果我使用初始 $(":radio") 选择器执行类似操作,它不会按预期工作,因为它仅在组中的 LAST 收音机发生更改时才激活保存按钮(因为我使用 .next )。此外,如果我使用 .siblings 而不是 .next,我会在页面中获得所有带有按钮的 div,因为它们都具有与输入(收音机和文本)相同的父级。我想在每个收音机组之后获取按钮的 div,而不仅仅是在最后一个收音机之后。
为了更清楚,请参考this fiddle
笔记:
- 我正在使用 jQuery 1.3,所以这就是为什么我使用 attr() 而不是 prop() 哟更改 disabled 属性。
- 我不能更改 html 代码,只能更改 jQuery 代码,因此更改 html 中的任何内容都不可行。另外,还有更多的无线电组,带有其他文本输入的 amog(每个都有一个保存按钮)
- 我知道每个 div 都具有相同的“guardan”id 是一个错误,但同样,这就是代码的方式,我无法更改它。
包起来。当收音机改变时,我需要一种方法来为每个单选按钮组启用相应的保存按钮。保存按钮总是包裹在 div 中,并且 div 总是在收音机或文本输入之后。我需要它在 jQuery 中工作,最好是 1.3,但如果需要,我可以将它更改为更新的版本。
提前致谢。