2016-08-25 10 views
2

私はasp.net MVCのページを作成します。このページでは、ビューとPartialView.Iはpartialviewにボタンを入れて、CountinueをViewに書き出します。ボタンのクリックイベントをPartialView(MVC)にバインドする方法はありますか?

ボタン:

<button type="button" class="btn btn-warning center-block btn-large" id="Continue" onclick="Continue(this);">Continue</button> 

JS:に要素のイベントをバインドする正しい方法は何ですか

TypeError: Continue is not a function

:私はこのエラーを取得]ボタンをクリックしてください今すぐ

var Continue=function (e) { 
      e.preventDefault(); 
      if ($('#FieldsetCharterFlightsReturn article').size() < 1) { 
       if (validateDeparturef(e)) { 
        $("#CharterFlightsForm").submit(); 
       } 

      } 
         if ($('#FieldsetCharterFlightsReturn article').size() > 0) { 
       if (validateDeparturef(e) && validateArrivalf(e)) { 
        $("#CharterFlightsForm").submit(); 
       } 
      } 
     }; 

PartialView?

+0

をあなたが適切ページで続行関数定義が含まれていますか?また、ボタンになる 'this'を渡していて、' preventDefault() 'というメソッドを持たないでしょう – Shyju

+0

はい。私はe.preventDefault()を削除できます – programmer138200

+0

同じビューにありますか?または外部のjsファイルですか?あなたの関数定義のすぐ上に 'console.log(" This function exist ");を置くことができます、あなたのページを実行して、ブラウザコンソールにメッセージが現れることを確認してください。 – Shyju

答えて

2

使用以下のパターン削除:

<button type="button" class="btn btn-warning center-block btn-large" id="Continue" onclick="module.Continue(event);">Continue</button> 

(function($, module) { 

    module.Continue=function (e) { 
     e.preventDefault(); 
     if ($('#FieldsetCharterFlightsReturn article').size() < 1) { 
      if (validateDeparturef(e)) { 
       $("#CharterFlightsForm").submit(); 
      } 

     } 
     if ($('#FieldsetCharterFlightsReturn article').size() > 0) { 
      if (validateDeparturef(e) && validateArrivalf(e)) { 
       $("#CharterFlightsForm").submit(); 
      } 
     } 
    }; 

}(jQuery, module= window.module|| {})); 
+0

OK。これは完全に動作します。メルシモハマド:) – programmer138200

2

醜いインラインクリックハンドラではなく、バインドイベントを使用しているため、このイベントを使用しているためです。

$(function(){ 
    $('#Continue').on('click', Continue); 
}) 

OR、イベントの委任に

$(document).on('click', '#Continue', Continue); 

を使用して、インラインonclick="Continue(event);"ハンドラ

+0

OK.jav for get partveiwこれは現在動作しています。私はこれまで、ボタンタグをタグに置き換えてpreventDefault()関数を削除する別の方法を見つけました。この方法では、インラインコードとこの作業を常に使用できます。ありがとうたくさん:) – programmer138200

関連する問題