2011-06-28 2 views
0

ボタンをクリックしたときにclick()イベントを発生させようとしています。FirefoxでのAsp:LinkBut​​tonの.Click()イベントでエラーが発生するのはなぜですか?

私はこれについてGoogleにトロールされている「link.clickは関数ではありません」と.clickを見つけた:これは、現在IEで私の作品

は、しかし、私はFirefoxで次のエラーを受け取りますイベントはfirefoxのすべてのバージョンでサポートされていません。

誰かに代替手段を提供できますか?以下のコード:

<asp:LinkButton ID="ButtonNext" runat="server" CssClass="RemoveLinkStyle" TabIndex="1"></asp:LinkButton> 
<table id="tblButtonNext" runat="server" cellpadding="0" cellspacing="0" class="pwbtn" onclick="ButtonClick(ButtonNext);" TabIndex="1" onmouseout="this.className='pwbtn';" onmouseover="this.className='pwbtnh';"> 
<tr> 
    <td class="a1"></td> 
    <td class="a2"> 
     <%= this.resourceManager.GetString("nextstep") %> 
    </td> 
    <td class="a3"></td> 
    <td class="spacer"></td> 
</tr> 
</table> 

function ExecuteLink(linkID) 
{ 
    var link = document.getElementById(linkID); 
    link.click(); 
} 

function ButtonClick(linkID) 
{ 
    PreNavigationScript(); 
    CallShowBlocker(); 
    ExecuteLink(linkID); 
} 
+0

どのような混乱。 plsはコードブロック – Tsar

+0

をフォーマットしますが、 'onclick'は' LinkBut​​ton'ではなく 'table'にあります。あなたは本当に何をしたいですか? – Bazzz

+0

@Bazzzテーブルクリックレイズボタンクリック。おそらくコードの背後に割り当てられたポストバックイベントです。少しばかげている)= – Tsar

答えて

1

私はこのためにjQueryを使用します。 jQueryによって公開されるclickイベントは、クロスブラウザと互換性があるように設計されており、現在使用しているものよりも一貫して機能することがわかります。

あなたの方法は、その後になるだろう:

function ExecuteLink(linkID) 
{ 
    $("#" + linkID).click(); 
} 

(おそらく$(のlinkID)も要素を返すかどうかを確認したい)

+0

それは '$("# "+ linkID)'ですか? – Tsar

+0

ああ、よく賞賛された歓声。 –

+0

これは私が必要なものです、ありがとう!私はまた、ボタンのポストバックをボタンに登録するためにボタンのクリックをAjax関数に渡す必要があったが、上記のコードを使用してボタンのクリックイベントを取得しなければならない別の問題に遭遇した。 –

0

あなたはjQueryのを使用していない場合は、あなたの代わりはかなりハックマウスでありますfirefoxのイベントしかしmozilla.dev.tech.dom

あたりとして

var evt = document.createEvent("MouseEvents"); 
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, 
false, false, false, 0, null); 
AnchorFieldObj.dispatchEvent(evt); 

、別の代替は、ボタンのクリックイベントを処理する関数を呼び出すことです。ソースを表示し、それが何であるかを確認すると、__doPostback('ButtonNext',...);のようなものになり、ExecuteLink()のfunctで呼び出されます。

0

私はclick() - Jqueryのメソッドも試しましたが、イベントはトリガーされませんでした。あなたが直接LinkBut​​tonコントロールの生成されたJavaScriptメソッドにアクセスすることができます

__doPostBack('ctl00$MainContentPlaceholder$MyLinkButtonId',''); 

をASP-のLinkBut​​tonは、入力フィールドと、最終的なHTMLコードでアンカーにレンダリングされます。最初のパラメータは、この入力フィールドの(クライアント)名です。

1

CausesValidation="False"ちょうどちょうど</body>タグの前に、あなたの管理組織のビー玉のページでこのコードスニペットやその他のappropiateのページを追加し、問題

0

を解決します設定:

<script language="javascript" type="text/javascript"> 
<!-- 
function __doPostBack(eventTarget, eventArgument) { 
var theform; 
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) { 
theform = document.aspnetForm; 
} 
else { 
theform = document.forms["aspnetForm"]; 
} 
theform.__EVENTTARGET.value = eventTarget.split("$").join(":"); 
theform.__EVENTARGUMENT.value = eventArgument; 
theform.submit(); 
} 
// --> 
</script> 

独自に「aspnetForm」を交換してください。

関連する問題