2011-07-13 9 views
1

私は、次のActionLinkの持っている:HTML.ActionLinkのデフォルトを防止するにはどうすればよいですか?私のマスターページで

$(document).ready(function() { 
    $("#resetButton").click(function (e) { 
     var context = org.testportal.context; 
     var appId = context.currentApplicationId; 
     var userId = context.currentUserId; 
     var hwid = context.currentHwid; 

     if (contextIsValid()) { 
      $.get('/State/ResetState', { applicationId: appId, userId: userId, hwid: hwid }, 
    function (data) { 
     openDialogBox(data); 
    }, "json"); 
     } 
     else { 
      var data = { message: "Invalid Context" }; 
      openDialogBox(data); 
     } 
     e.preventDefault(); 
    }); //resetState 
}); 

現在、ユーザー:このマスターページからinherts私の見解では、

<%=Html.ActionLink("Reset State", "ResetState", "State", null, new { id = "resetButton" })%> 

を、私は次のクリックイベントが定義されていリンクをクリックすると、 "Reset State"リンクがNULLパラメータでコントローラのアクションにGET要求を行います。クリックイベントは発生しません。イベントのデフォルトは停止されません(表示されます)。上記のjavascriptは私のビューのフッターに追加されています。

Firebugを使用すると、イベントが$(document).ready()にバインドされていることがわかります。現時点では$( "#resetButton")がページにあります。私はイベントが縛られているときに時計を使ってこれを確認しました。

私のjsが発射されない理由についてのアイデアはありますか?

おかげ

無視

私はディングルです。スクリプトでjsエラーが見つかりました。それはまだあなたのresetButtonがないことを意味し、あなたのイベントが結合されていないデフォルトの動作を、防止されていない場合

$(document).ready(function() { 
    $("#resetButton").click(function (e) { 
     var context = org.testportal.context; 
     var appId = context.currentApplicationId; 
     var userId = context.currentUserId; 
     var hwid = context.currentHwid; 

     if (contextIsValid()) { 
      $.get('/State/ResetState', { applicationId: appId, userId: userId, hwid: hwid }, 
    function (data) { 
     openDialogBox(data); 
    }, "json"); 
     } 
     else { 
      var data = { message: "Invalid Context" }; 
      openDialogBox(data); 
     } 
     return false; 
    }); //resetState 
}); 

答えて

1

私は普通のクリックイベントのデフォルト動作を防ぐためにreturn falseを追加しますdocument.readyが呼び出されたとき。

0

あなたは、あなたがデフォルトの動作を妨げることがどのようにこのID =「リンク」がアンカーを持っている場合:あなたは、特定の種類のすべてのハイパーリンクは、この動作を持つようにしたい場合は

$('#linl').click(function (e) { e.preventDefault(); } 

を:

$('a[name=modal]').click(function (e) {    
    e.preventDefault(); 
    .... 
} 

ここでは、任意の<a name="modal" ...>link</a>は既定の動作を防止します。

これは、モーダルウィンドウをハイパーリンクから読み込む方法です。

希望します。

ありがとうございました

関連する問題