我在页面上有许多类似的表单,由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')并且有效。所以看起来这个/最近/找到位的东西不能正常工作。
答案 0 :(得分:0)
您可以在此处使用parents()
功能。
试试这个:JSFIDDLE
$("input").focus(function(){
$('input[name="changebutton"]').prop('disabled', true);
$(this).parents('form').find('input[name="changebutton"]').prop('disabled', false);
});