2012-05-04 6 views
0

Struts2を使用してドロップダウンからユーザーを新しいページにリダイレクトするjs関数があります。ここにコードがあります。jQueryを使用してwindow.location.hrefのセレクタを取得する方法1.4.4

すべて開始しStruts2のドロップダウン:ここ

<s:select name="selectName" list="List" listKey="nameCode" headerKey='-1' 
listValue="description" headerValue="Please select..." value="namedValue" onchange="redirectNextPage(this.value)" /> 

は、次の発射リダイレクト機能である:

function redirectNextPage(id){ 
    var page = "<s:url action='<path>.action'/>?<param>="; 
    window.location.href=(page + id); 

} 

私はwindow.location.hrefをキャプチャし、それをバインドするために、セレクタを使用する必要がありますUnBindWindow関数に渡します。

//Bind Links we dont want to affect 
$('a[href^="http://"]').bind('focus', UnBindWindow); //Code not working? 

//UnBind Function 
    function UnBindWindow(){ 
     $(window).unbind('beforeunload', ReturnMessage); 
    } 
... 

私は間違ってフォーカスが適切なDOMイベントタイプであると仮定しました。選択がjavascript関数に行き、次にjQueryコードが呼び出されることなくonbeforeunloadイベントが発生します。

イベントをwindow.location.hrefに適切にバインドするにはどうすればよいですか?beforeloadダイアログが選択ドロップダウンを起動しないようにすることはできますが、jspページの他の要素についてはまだ動作しますか?

+0

どうすれば 'bind'の代わりに' delegate'を使うのですか? – mgraph

+0

私は試してみることができますが、ボタンのためにバインドしました。今私はそれをドロップダウンに適用しようとしています。 –

答えて

0

デバッグ後、Struts2タグがイベントをキャプチャしていて、jQueryがインターセプトするためにバブリングしていないことがわかりました。

私はこのコードを打つことができなかったん:

はしかし、今の問題を知って、私は直接redirectNextPage関数にバインド解除を入れ
$('select').change(function() { 
      alert('This worked!'); 
    }); 

と期待どおりに働きました。

$(window).unbind('beforeunload', ReturnMessage); 
    window.location.href=(page + id); 

私はこれが他の人に役立つことを願っています。

関連する問題