2016-04-11 11 views
-1

によって異なるボタンを無効にします。私はwan'tjqueryのは、私はそのような多くのボタンやフォームを持っている私のページでフォーム

<div class="rows"> 
      <div class="row"> 
      <button class="open">btn1</button> 
      <form>form1 
       <button class="close">submit</button> 
       <button class="ave">close</button> 
      </form> 

      </div> 
      <div class="row"> 
      <button class="open">btn2</button> 
      <form>form2 
       <button class="close">submit</button> 

        <button class="ave">close</button> 
      </form> 
      </div> 


     </div> 

何:ユーザーがボタンを押すと、それはそれに接続されているフォームを開きます。ユーザーがをクリックしてボタンを送信すると、フォームが閉じられ、フォームを開いたボタンが使用できなくなります。ユーザーがをクリックしてボタンを閉じると、ボタンを使用不可にせずに閉じるだけでフォームを作成します。マイスクリプト:

$(function() { 
     $('.rows').on('click', '.open', function() { 
     $(this).parent().children('form').show(); 
     $(this).attr('disabled', true); 

     }); 

     $('.rows').on('click', '.close', function(e) { 
     e.preventDefault(); 
     $(this).parent('form').hide(); 

     }); 

    $('.rows').on('click', '.ave', function() { 
     e.preventDefault(); 
     $(this).parent('form').hide(); 
     $(this).parent('.open').attr('disabled', false); 
     }); 

    }); 



form { 
    display: none; 
    padding: 20px; 
    border: 1px solid red; 
} 

は今availiable後に提出するすべてのボタンを作る[閉じる]ボタンをクリックしてください。クリック後に間違ったスクリプトやページの更新を書きますか?

+0

'にReferenceError:( '列 ')eはあなたが' $にパラメータとして 'e'を忘れてしまったdefined'されていません(' クリック'、 '.ave'、機能上。 (){'。 –

答えて

4

コードでは、openクラスのボタンは、クラスaveのクローズボタンの親ではありません。親のdivをクラスrowparentまたはclosest)でターゲティングしてから、それを子ボタンにする必要があります。

$('.rows').on('click', '.ave', function(e) { 
     e.preventDefault(); 
     $(this).parent('form').hide(); 
     $(this).closest('.row').find('.open').prop('disabled', false); 
     }); 

例:https://jsfiddle.net/25c0fvcy/4/

関連する問題