0

私はこの SF リンクから編集を取りました: StackOverflow link、ユーザー Blazemonger がJFiddle Demoでデモを示した場所

上記から: 1) アラート ボックスではなく、送信ボタンの下の DIV ステートメントで、一度に 1 つだけでなく、すべてのエラーを表示するにはどうすればよいですか? 2) エラーが修正され、送信ボタンが再度押されたら、背景の色を白に戻すにはどうすればよいですか?

問題 2 のフィドルを次のように編集しましたが、機能していません。

$("form").submit(function() {
    var submitme = true;
    $(':radio').each(function() {
        nam = $(this).attr('name');
        if (submitme && !$(':radio[name="'+nam+'"]:checked').length) {
            alert(nam+' group not checked');
            $(':radio[name="'+nam+'"]+label').addClass('error');
            submitme = false;
        }
        if (submitme && $(':radio[name="'+nam+'"]:checked').length <> 0) {
                $(':radio[name="'+nam+'"]+label').addClass('noerror');
        }
    });
    return submitme;
});

CSS:

.error {
    background-color: red;
}
.noerror {
    background-color: white;
}
4

1 に答える 1

1

ボタンをクリックすると、各グループの 1 つの値が選択されているかどうかを確認でき、選択されていない場合は div が表示されます。

この更新されたフィドルをチェックしてください

$("form").submit(function() {
    var html = '';
    var submitme = true;
    $(':radio').each(function() {
        nam = $(this).attr('name');
        if (!$(':radio[name="'+nam+'"]:checked').length) {
            $(':radio[name="'+nam+'"]+label').addClass('error');
            if(html.indexOf(nam) < 0){
                html += nam +' group not checked' + '</br>';
            }
            submitme = false;
        }
    });
    if(submitme == false){
       $('.errorDiv').empty().append(html).show().addClass('error');
    }
    else{
      $('.errorDiv').hide();
    }

    return submitme;
});
​
        ​
        .error {
            background-color: red;
            display:none;
        }

</p>

于 2012-09-24T17:54:57.263 に答える