2016-11-30 20 views
0

htmlボタンでクリックをjavascriptで実行しようとしていますが、動作させることができません。ボタンがJavaScript内で機能しない

これは私がjavascriptをクリックしようとしているボタンです(私はそれをクリックしたとき、それは動作します)

<button id="btnClean" runat="server" type="button" class="btn btn-warning btn-cons m-b-10" onserverclick="btnClean_Click"> 
    <i class="fa fa-trash-o"></i> 
    <span class="bold m-l-3">Limpar</span> 
</button> 

これはjavascript関数を呼び出すボタンです:

<button id="btnCreateOS" type="button" class="btn btn-success btn-cons m-b-10" onclick="Clean();"> 
    <i class="fa fa-save"></i> 
    <span class="bold m-l-3">Criar</span> 
</button> 

そして、これjavascript.aspx<form>タグの下にあります):

<script type="text/javascript">   

    function Clean() { 

     document.getElementById("btnClean").click(); 

    } 

</script> 

そして最後に、これはasp方法である:私が間違ってやっている

public void btnClean_Click(object sender, EventArgs e) 
{ 
    CleanFields(); 
} 

任意のアイデア?

+0

コンソールですべてのエラーを。 –

+0

これをデバッグすると、どこでどのように具体的に失敗しますか?クライアント側またはサーバー側にエラーはありますか?クライアント側の関数は呼び出されていますか? 2番目のボタンは 'id'で見つかったのですか?ポストバックが呼び出されていますか? – David

+0

bodyタグを閉じた後にjavacriptを移動します – ScanQR

答えて

2

どのようなことが起きているのですが、マスターページとコンテンツページを使用しているときは、デフォルトの動作に従ってIDが常に変更されます。

function Clean() { 
     //document.getElementById("btnClean").click() 

     document.getElementById('<%= btnClean.ClientID %>').click(); 
    } 

あなただけのClientIDMode = "静的"を追加する別の解決策。あなたのボタンで

<button id="btnClean" runat="server" clientidmode="Static" type="button" class="btn btn-warning btn-cons m-b-10" onserverclick="btnClean_Click"> 
     <i class="fa fa-trash-o"></i> 
     <span class="bold m-l-3">Limpar</span> 
    </button> 

...

次に、あなたの現在のjavascriptのコードも動作します。..

function Clean() { 
     document.getElementById("btnClean").click(); 

     //document.getElementById('<%= btnClean.ClientID %>').click(); 
    } 
+0

ニース!!!これをありがとう!あなたの説明にも感謝します。 – perozzo

0

それは高速ですので、あなたは、代わりに

document.getElementById("btnClean").trigger("click"); 

を使用する必要があります。たぶんbtnClear_Clickのデフォルトの動作を防ぐようにしてください。 console.log( "a")(または、むしろ "b"を2番目のもの)を2つの関数に追加して、2つの関数が実行されているかどうか、そしてどちらが実行されているかを確認してください。

+0

コンソールで同じエラーが発生しました: 'Uncaught TypeError:プロパティ 'trigger' of null(...)の読み込みができません。 – perozzo

+0

1)' .trigger'はjQueryメソッドであり、ネイティブのjavascriptではありません。 2)これがうまくいってもOPの既存のclick()の呼び出しと意味的に同じです。 3)これがうまくいても、ボタンにはないbtnCleanというクライアント側のイベントだけがトリガされます.OPが呼び出そうとしているサーバー側のイベントがあります。 – ADyson

+0

あなたのお手伝いをありがとうございます! – perozzo

関連する問題