2011-10-17 17 views
0

ボタンをクリックすると別のページにリダイレクトしようとしていますが、javascriptのif()特定のページで何らかの理由でOn_Clickイベントがgrabinhgされていないためです。デバッグ中に、.csファイルのOn_Clickイベントに入る前に、複数のクラスと関数が呼び出されます。完了するまでには、別の場所にリダイレクトされ、On_Clickイベントは実行されません。私はJavaScriptを使用してボタンをクリックした後すぐに.csで評価することにしましたが、私はまだそこで動作しているので他のページでも許可したいと思っています。ボタンをクリックしたときにリダイレクトが発生しない

画像ボタンをクリックすると、最初に機能をチェックしてから、実際のリダイレクトを行い、Page_Loadやその他の処理を停止することになっていますが、コントロール

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="FindPage.ascx.cs" 
    Inherits="Data_Manager_FindPage" %> 
<script type="text/javascript"> 
    function ForwardSearch() { 
     if (window.location.href.indexOf('FindPage.aspx') > -1) { 
      var value = document.getElementById('<%= txtFind.ClientID %>').value; 
      window.location.href = '~/ResultSet.aspx?findvalue=' + encodeURIComponent(value); 
     } 
    } 

</script> 
+0

あなたはそれが「on_clickイベントをつかんされていない」理由はJavascript検証は素晴らしいですが、簡単に(事故や故意に)バイパスすることができる整理する必要があり – colithium

答えて

1

1つの問題は、ForwardSearch()JavaScript関数が明示的にtrue/falseを返さないことです。

"OnClientClick = 'return ForwardSearch();'を追加すると、関数の結果を使用して実行を続行するかどうかを判断します。あなたのForwardSearch()は何も返さないので、デフォルトをtrueに返すので、実行を継続し、最終的にサーバ側のbtnFind_Clickを呼び出します。

試してみてください。

<script type="text/javascript"> 
function ForwardSearch() { 
    if (window.location.href.indexOf('FindPage.aspx') > -1) { 
     var value = document.getElementById('<%= txtFind.ClientID %>').value; 
     window.location.href = '~/ResultSet.aspx?findvalue=' + encodeURIComponent(value); 
     return false; 
    } 
    return true; 
} 

+0

うわーほとんど、ありがとうございました。唯一のことは、/Web/~/ResultSet.aspx?findvalue=blahというアドレスを表示していることです。私は波打ちとフォワードスラッシュを削除しましたが、まだそれは置いています。 – user710502

関連する問題