2014-12-09 82 views
0

我在頁面上有許多類似的窗體,由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')並且工作正常。所以看起來好像這個/最接近/找到位的東西不能正常工作。

+1

你能給你完整的HTML結構嗎?如果我把它放在小提琴中它工作正常: http://jsfiddle.net/frv47vk7/ – Jeroen 2014-12-09 11:28:27

+0

你的代碼似乎對我來說很好。它的工作。 – 2014-12-09 11:28:59

+0

問題出在頁面上的其他地方。現在我的原始解決方案和Mangesh Parte的工作。表單標籤和表結構之間存在衝突。 感謝你們不厭其煩地看着它。 – TrapezeArtist 2014-12-09 12:49:29

回答

0

您可以在這裏使用parents()函數。 試試這個:JSFIDDLE

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