禁用多个提交按钮,只启用一个(jQuery)

时间:2014-12-09 11:22:19

标签: jquery submit disabled-input

我在页面上有许多类似的表单,由PHP while循环创建。每个表单有大约10个文本输入和一个提交按钮。如果(仅针对此问题)表单被称为A,B,C和D,我想在A上的一个输入处于焦点时禁用B,C和D上的提交按钮。同样对于其他每种形式。

我这样想是有两行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')并且有效。所以看起来这个/最近/找到位的东西不能正常工作。

1 个答案:

答案 0 :(得分:0)

您可以在此处使用parents()功能。 试试这个:JSFIDDLE

$("input").focus(function(){
   $('input[name="changebutton"]').prop('disabled', true); 
   $(this).parents('form').find('input[name="changebutton"]').prop('disabled', false);
});