0

私はそのような2つのラジオボタンを持っています

<input type="radio" name="rush" value="yes" />
<input type="radio" name="rush" value="no" checked="checked" />

私がしたいのは、フォーム送信ボタンがクリックされたときに、「はい」が選択されているかどうかを確認することです。

そうである場合は、JavaScript 確認ダイアログを表示します

私はここまで来ましたが、立ち往生しています。どんな助けもいただければ幸いです。

$("form.shipping").submit(function() {

    if($("input[name='rush']".attr("value") === "yes")
    {
        if (confirm("Rush orders are subject to an upcharge. (Just wanted to make sure you read the note). Is this ok?"))
        {
            return true;
        }
        else
        {
            return false;
        }
    }

});
4

3 に答える 3

5

clickボタンのイベントに何かをバインドしています。submitおそらくフォームのイベントにバインドしたいと思うでしょう。input.sumbit-buttonそれに加えて、セレクターのスペルを間違えました。

編集:これはあなたが望むものの作業バージョンです。エラーは次のとおりです。

  • おそらく、コードをラップしていませんでしdocument.readyた。これは、スクリプトがページの上部に含まれている場合に重要です。このイベントでラップされていない記述はすべて、DOM 要素が作成される前に実行されるためです。したがって、イベントを何もバインドしません。document.readyイベントは、DOM が完全にロードされるとすぐに発火することで、それを処理します。
  • )の直前にクロージングがありませんでした.attrFireBugなどのツールを使用してこれらの種類のものを見つけるのは簡単なので、おそらく JavaScript をデバッグするために調べる必要があります。
  • ラジオ ボタンの値をチェックしていましたが、1 つだけを取得するにはフィルターで除外する必要があるため、常に true と評価されていました:checked

したがって、作業コード:

$(document).ready(function() {
    $("form.shipping").submit(function() {
        if($("input[name='rush']").is(":checked")) {
            return confirm("Rush orders are subject to an upcharge.
            (Just wanted to make sure you read the note). Is this ok?");
        }
    });
});
于 2009-04-09T20:14:47.490 に答える
0

複数のブラウザで失敗しますか? onclick または onsubmit イベント ハンドラで confirm() が実行されないという IE7 の奇妙なバグの報告を見てきました。

于 2009-04-09T20:27:10.860 に答える