1

やあみんな私はできる限り調べましたが、答えが見つかりませんでした。フォームがいたるところにある管理インターフェイスを作成しています。それらすべてに同じjqueryコードを使用したいと思います。いくつかのコードがありますそれは仕事を成し遂げていますが、それを行うためのより効率的な方法があるかどうか知りたいです. ここにコードがあります

    function submitForm( formname ) 
{
  $.ajax
  ({
    type:'POST', 
    url: 'session.php', 
    data: $(formname).serialize(), 
    success: function(response) 
    {
      if( $('#message_box').is(":visible") ) 
      {
        $('#message_box_msg').html ('') 
        $('#message_box').hide();
      }
      $('#message_box').slideDown();
      $('#message_box_msg').html (response);      
    }
  });
return false;
}

今、私のフォームは次のようになります。

<form id="adminForm" action="session.php" method="post" onsubmit="return submitForm('#adminForm');">

今私の質問は...これを行うためのより簡単な方法はありますか?

前もって感謝します!

4

2 に答える 2

1

はい、すべてのフォームに共通のクラスを定義し、

$(".form_class").submit(function() {

  //stuff that gets executed on form submission ...

  return result;
})

そして、インラインの「onsubmit」をダンプします。ビューと動作を分離するため、一般的にこれを行う方がクリーンです。

于 2012-06-28T02:59:44.123 に答える
1

ajax でロードされたフォームを考慮して、ハンドラーをドキュメントまたはページ内の他の永続的なアセットに委任することができます。これはあなたのインラインを置き換えますonsubmit

$(document).on('submit','form', function(){ 

     var allowSubmit=false,
         noSubmitMessage="Can't submit", /* can change message in various places in following code depending on app*/
         $form=$(this);/* cache jQuery form object */
    if( $form.hasClass('doValidation')){
        /* class specific code to run*/    
        allowSubmit = validationFunction();
    }

    if( allowSubmit){
       var data=$form.serialize()          
       /* do ajax*/
    }else{
       /* user feedback*/ 
       alert( noSubmitMessage);
    }

return false;

});
于 2012-06-28T03:35:49.070 に答える