1

チェックボックスのセットで JQuery 検証を機能させるのに問題があります。ASP.NET チェックボックスリストを使用してチェックボックスを生成しています。JQuery を使用して、リスト内の各チェックボックスの「名前」属性を同じものに設定しました。ブラウザに書き込まれるコードは次のとおりです。最初のチェックボックスに「検証」属性を設定して、少なくとも1つのチェックボックスを選択する必要があるというルールを設定しています。JQuery 検証は、フォーム上の他のすべての要素に対して機能しますが、チェックボックス リストに対しては機能しません。また、フォームの「ページ」ごとに検証をトリガーするページで JQuery フォーム ウィザードを使用しているため、検証の呼び出し方法を制御できません。

<input id="ContentPlaceHolder1_MainContent_AreaOfInterest_0" class="ui-wizard-content     ui-helper-reset ui-state-default" type="checkbox" value="Famine" name="hello[]" validate="required:true, minlength:1">
<label for="ContentPlaceHolder1_MainContent_AreaOfInterest_0">Famine</label>
<br>
<input id="ContentPlaceHolder1_MainContent_AreaOfInterest_1" class="ui-wizard-content ui-helper-reset ui-state-default" type="checkbox" value="Events Volunteer" name="hello[]">
<label for="ContentPlaceHolder1_MainContent_AreaOfInterest_1">Events Volunteer</label>

何がうまくいかないのかについてのアイデアはありますか?検証を行う JQuery スクリプトの例はたくさんありますが、カスタム コントロールによってサーバー側のチェックボックス リストを生成しているため、これを回避しようとしています。 JQuery が有効になっていません。JQueryが無効になっていてもページが機能するように、可能な限り目立たないようにしながらJQuery検証を有効にしようとしています。

フォーム ウィザードに関連する JQuery インクルージョンと JQuery 初期化スクリプトを次に示します。JQuery検証に初期化コードを使用していません:

<script type="text/javascript" src="../js/formwizard/js/bbq.js"></script>
<script type="text/javascript" src="../js/formwizard/js/jquery.form.js"></script>
<script type="text/javascript" src="../js/formwizard/js/jquery.form.wizard.js"></script>
<script type="text/javascript" src="../js/formwizard/js/jquery.validate.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#form1").formwizard({
            validationEnabled: true,
            focusFirstInput: true
        });
    });
</script>
4

1 に答える 1

0

JQueryを使用して各チェックボックスの「名前」を一貫した値に設定すると、.NETのチェックボックスリストが「壊れます」(これが発生すると思いました)。基本的に、JQueryフォームウィザードを使用するには複雑すぎて、JQueryはカスタマイズされた.NETチェックボックスリストで検証します。それらは実際には互換性がありません。.NETでは、チェックボックスリストの入力ごとに異なる名前を付ける必要があります。これは、JQueryの検証ではうまく機能しません(フォームウィザードを使用している場合は確かにそうではありません)。フォームウィザード(このオプションがあります)でJQuery検証をオフにして、フォームウィザードが.NETバリデーターの検証(クライアント側の検証を含む)で正常に機能するかどうかを確認します。結果を投稿します!最初にこれを試してみましたが、フォームウィザードが正しく機能していなかったと思います。これが、フォームウィザードでJQuery検証を使い始めた理由です。現在の解決策は、複数ページのフォームを削除し(これがないとフォームは長すぎない)、単純化して、.NET検証に依存することです(クライアント側とサーバー側)。誰かが、複数ページのフォームでは、入力するフィールドがいくつ残っているのか疑問に思うことがあると指摘しましたが、少なくとも1つのページのフォームでは、入力する必要のある内容の完全性を確認できます。

これは私が使用している/使用していたフォームウィザードです。

http://thecodemine.org/

于 2012-09-11T03:35:23.157 に答える