2012-05-07 43 views
0
<input type="button" value="Accept Contract" class="button" onclick="if(confirm('Are you sure you want to accept this contract?')) window.open('actionurl.php');"> 

シンプルで、なぜ機能しませんか?確認ボックスは一切表示されません。なぜこのボタンのonclickパラメータは機能しませんか?

+2

あなたのJavaScriptのエラーを見てください。これより前に他のものが失敗した可能性があります –

+0

これはそれ自体で動作するはずです。もう少しマークアップ/コードを貼り付けます。また、ブラウザがポップアップとして新しいウィンドウをブロックしているのではないでしょうか? – Imp

+1

あなたはどのブラウザを使用していますか? – Jack

答えて

2

ここでうまくいきました。しかし、この方法を試してください。

<script> 
document.getElementById('confirmButton').onclick = function(){ 
    if(confirm('Are you sure you want to accept this contract?')) 
     window.open('actionurl.php'); 
} 
</script> 
<input type="button" value="Accept Contract" class="button" id="confirmButton"> 
+0

私はこのアプローチが本当に好きです。なぜなら、すべてのJavaScriptをHTML要素/属性から完全に取り除き、JavaScriptが所属する場所にJavaScriptを保持するからです。しかし、これは元のアプローチがなぜ機能しないのかという問題にはまだ対処していません。 – jmort253

+0

ブラウザはエラーを警告していますか? –

+0

私はこれも好きですが、ここに投稿するにはPHPリファレンスを削除しましたが、PHPリファレンスでは見逃しがありましたが、この答えは私にはわかりました。ありがとう! –

2

私はむしろそれのために別の機能を作りたいと思います。

<script> 
function bla() 
{ 
    if(confirm('Are you sure you want to accept this contract?')) 
     window.open('actionurl.php'); 
} 
</script> 

<input type="button" value="Accept Contract" class="button" onclick="bla();"> 
+0

素晴らしい提案ですが、なぜオペアのコードが機能しないのか説明していません。それはうまくいくはずです。 – jmort253

+0

さて、彼の問題は解決しましたが、私はコードに間違いがないので、これを投稿しました... – corazza

+3

デバッガからのエラーメッセージが表示されずに問題がまだ解明されていません。私のアドバイスは、質問に正確に答えることも解決しない解決策を投稿することです。繰り返しますが、これは良い提案ですが、他のJavaScriptを起動させないOPコード(図示せず)に何か他のものがあると、実際には問題を解決できないことに注意してください。 – jmort253

2

のブラウザの互換性としなければならないかもしれませんテストして正常に動作し、自分で確認してください。

http://jsfiddle.net/XSTCm/