0

クレジットを購入するためのリンクが1つあります。リンクをクリックしたときに表示を確認したいので、ユーザーが[はい]をクリックした場合はリンクを直接表示します。しかし、私のページで[はい]または[いいえ]リンクをクリックすると、hrefリンクに移動します。はいまたはいいえを意味し、異なる作業とリンク作業を行います。

    <script>
    <!--
    function confirmbuy() {
    if (confirm("Are You Sure???")) {
    return true;
    } else {
    return false;
    }
    }
    //-->
    </script>
<a href="buy.php" onclick="confirmbuy();">Buy</a>

私はこのコードを送信ボタンについてテストし、適切に機能しますが、リンクについては機能しません!!!

4

6 に答える 6

3

関数の結果を返す必要がありconfirmbuy()ます。そうしないと、イベントがキャンセルされることはありません。

<a href="buy.php" onclick="return confirmbuy();">Buy</a>
于 2012-11-14T13:17:10.450 に答える
3

イベントハンドラー関数(組み込みイベント属性の値で定義)は何も返しません。呼び出しconfirmbuyて停止するだけです。

の戻り値を返したい場合confirmbuyは、明示的に行う必要があります。

onclick="return confirmbuy();">

この問題は発生しませんconfirmbuyが、イベントハンドラーでした。

ref_to_link.addEventListener('click', confirmbuy);

addEventListener控えめなJavascriptについてもっと読むことをお勧めします。

于 2012-11-14T13:17:21.620 に答える
2

インラインハンドラーは、実際には、クリックイベントのハンドラーとして設定される関数に配置されます。したがって、基本的にコードは次のようになります。

a.addEventListener("click",function(e){
    confirmbuy();
})

ご覧のとおり、このハンドラーはfalseを返さないため、イベントは通常どおり進行します。

于 2012-11-14T13:19:46.113 に答える
1

必要なもの:

onclick="return confirmbuy();"
于 2012-11-14T13:18:19.130 に答える
1

より良い..

<a href="buy.php" onclick="return confirm('Are You Sure???');">Buy</a>
于 2012-11-14T13:18:42.590 に答える
1

不要なコードを修正して削除しました:

<a href="buy.php" onclick="return confirm('Are You Sure???');">Buy</a>
于 2012-11-14T13:19:04.187 に答える