2016-06-19 4 views
0

ボタンが最初に「追加」と表示され、「add.php」ファイルに移動しますが、ボタンはクリックされたときにテキストを変更せず、 'update.php'ファイル - 'isAdd ? 'update.php' : 'add.php'のif文ですか?もしそうなら、isAdd変数を正しく読んでいるとは思えません...変更されたコードと、ボタンが下に制御されている.jsコードを含めました。繰り返しますが、これについての任意の(と私は何かを意味する)助けに感謝します!jqueryでボタンをクリックしたときにテキストとフォームアクションをトグルする

<form method='post' class='myform'> 
      <button id='insert'>Add</button> 
    </form> 

    <script> 
     $('#insert').click(function() { 
      var isAdd = this.value == 'Add'; 
       $(this).text(isAdd ? 'Cancel' : 'Add'); 
       $(this).closest('.myform').prop('action', isAdd ? 'update.php' : 'add.php'); 
       }); 
     </script> 
    <script src='bookroom.js'></script> 
    <p id='result'></p> 

bookroom.jsコード:

$('.myform').submit(function(){ 
    return false; 
}); 

$('#insert').click(function(){ 
    $.post(  
     $('.myform').prop('action'), 
     $('.myform :input').serializeArray(), 
     function(result){ 
      $('#result').html(result); 
     } 
    ); 
}); 

答えて

0

使用.attr()またはprop()フォームを取得するには、フォームのアクションとclosest()を設定します。 $('#insert')の代わりに$(this)の使用にも注意してください。

$('#insert').click(function() { 
    var isAdd = $(this).text() == 'Add'; 
    $(this).text(isAdd ? 'Cancel' : 'Add'); 
    $(this).closest('form').attr('action', isAdd ? 'update.php' : 'add.php'); 
}); 
+0

部分的には動作しますが、フォームアクションの変更を避けても、別の見方がありますか? :) – Cookie

+0

コードを更新しました。また、テストのためにhttps://jsfiddle.net/oL24k2Lt/5/をチェックしてください。また、bookroom.js内のワンクリックハンドラ内にすべてのコードを追加することをお勧めします –

関連する問題