1

フォームでHTML5 Constraint Validationを使用して、ユーザーが送信前にクライアント側のエラーを見つけられるようにしようとしています (そして明らかにサーバー側の検証も行っています)。

ユーザーが他のフィールドで選択した内容に基づいて、条件付きで一部のフィールドを必須またはオプションにする必要がある状況があります。しかし、Firefox では、ラジオ入力が必要になった後、ラジオ入力をオプションにするのに苦労しています。これらのラジオ入力で required 属性を削除し、 this.willValidate を false に設定しようとしましたが、Firefox は私が何をしてもそれらが必要であると考えているようです。

ここにデモがあります:http://jsfiddle.net/rrud/fUcUn/

これらのラジオが必要になったら、これらのラジオをオプションにするように Firefox に指示するために JavaScript で試すことができる他の何かについてのアイデアはありますか?

私の例は Chrome と Opera でうまく機能し、Firefox ではラジオ以外のすべての入力が期待どおりに動作します。これは Firefox の単なるバグでしょうか? Win7 で Firefox 13.0 を使用しています。

4

2 に答える 2

2

jQuery の prop メソッドを使用します: $.fn.prop

-> $('input').prop('required', true|false);

http://jsfiddle.net/trixta/fUcUn/12/

于 2012-06-18T20:57:38.213 に答える
0

これをあなたのコードに追加するだけです

this.checked = false;

コードは次のようになります

$(function() {
    $("#require").click(function() {
        $("input, textarea, select").attr('required', 'required');
    });
    $("#unrequire").click(function() {
        $("input, textarea, select").removeAttr('required').each(function() {
            this.willValidate = false;
            this.checked = false;
        });
    });
});

このフィドルをチェックしてください http://jsfiddle.net/kabichill/ktfV6/

于 2012-06-12T05:29:46.900 に答える