禁用几个提交按钮,只剩下一个启用(jQuery)
问题描述:
我在页面上有许多类似的窗体,由PHP while循环创建。每个表格都有大约10个文本输入和一个提交按钮。如果(就这个问题而言)表单被称为A,B,C和D,当A上的其中一个输入焦点时,我想禁用B,C和D上的提交按钮。对于其他形式也是如此。禁用几个提交按钮,只剩下一个启用(jQuery)
我的想法是做两行jQuery。第一行将禁用所有提交按钮。第二行将重新启用专注于输入的那一行。我可以做的第一部分,但我坚持第二部分。
每种形式的
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" name="changeform">
每个提交按钮是
<input name="changebutton" type="submit" value="Change">
然后我的脚本
$("input").focus(function(){
$('input[name="changebutton"]').prop('disabled', true);
$(this).closest('form').find('input[name="changebutton"]').prop('disabled', false);
});
2号线工作正常(所有的按钮被禁用),但行3什么都不做。
我已经尝试使用第3行放在一个大的红色边框(所以我可以看到页面的哪一部分正在受到影响),没有任何显示。
我尝试过使用.closest('table')。find('td')并且工作正常。所以看起来好像这个/最接近/找到位的东西不能正常工作。
答
您可以在这里使用parents()
函数。 试试这个:JSFIDDLE
$("input").focus(function(){
$('input[name="changebutton"]').prop('disabled', true);
$(this).parents('form').find('input[name="changebutton"]').prop('disabled', false);
});
你能给你完整的HTML结构吗?如果我把它放在小提琴中它工作正常: http://jsfiddle.net/frv47vk7/ – Jeroen 2014-12-09 11:28:27
你的代码似乎对我来说很好。它的工作。 – 2014-12-09 11:28:59
问题出在页面上的其他地方。现在我的原始解决方案和Mangesh Parte的工作。表单标签和表结构之间存在冲突。 感谢你们不厌其烦地看着它。 – TrapezeArtist 2014-12-09 12:49:29