1

JQuery Steps を使用して WebForms プロジェクトでウィザードをセットアップし、Peter Blum の VAM バリデーターを使用して入力が適切であることを確認しています。私のプロセスの最初のステップの例を次に示します。

 <div id="wizard">
           <h1>Step 1</h1>
            <div id="stepToAccount">
                <p class="sectionHeader">
                    <asp:Label id="DropdownLabel" runat="server"/>
                </p>
                <asp:DropDownList id="Dropdown" CssClass="indent50" runat="server"/>

                <br/>
                <vam:RequiredListValidator runat="server" ID="DropdownIsRequired" Group="StepOne" ControlIDToEvaluate="Dropdown" UnassignedIndex="0" ErrorMessageLookupID="DropdownRequired.Error" SummaryErrorMessageLookupID="DropdownRequired.Error"/>

            </div>

これはすべて、ウィザード ( ) を指定するために使用している指定に使用している div の外では 100%<div id="wizard">正常に機能しますが、ウィザード div 内では正しく機能しません。ドロップダウンをクリックしても期待どおりにすぐに検証されません。手動で検証を呼び出すとwindow.DES_ValidateGroup("StepOne")、ステップに問題があることが正しく返されます (ステップ タイルが赤くなります)。ただし、エラー メッセージは表示されません。バリデーターと。

その理由を掘り下げてみる<span>と、VAM バリデーターが発行するタグには、非表示にならないようにするインラインvisibilityタグが含まれているようです。VAM の JavaScript は、必要に応じてそのタグを削除して再適用します (たとえば、バリデーターが失敗し、再び成功したとき)。ウィザードの div 内で検証が失敗した場合、visibilityタグが適切に削除されません。

これがなぜなのか、どうすれば修正できるのか、誰にも手がかりがありますか?

編集:参考までに、これは発行されたコードです:

 <div id="wizard">
            <h1>Step 1</h1>
            <div id="StepOne">
                <p class="sectionHeader">
                    <span id="DropdownLabel">Which account would you like to pay to?</span>
                </p>
                <select name="Dropdown" id="SelectToAccountDropdown" class="indent50">
<option selected="selected" value="0">-- Option One -- </option>
<option value="1">Option Two</option> 
</select>
       <span class="indent50">
                    <span style='visibility:hidden' class='VAMErrorText'  id='DropdownIsRequired'>
   <span id='DropdownIsRequired_Txt'>Please select a thing.</span>
</span>    
                </span>                    
            </div>
4

1 に答える 1

0

問題は、JQuery Steps が render メソッドの実行中に DOM からイベント リスナーを削除していたことでした。これにより、Peter Blum バリデーターが作業を行うために依存していたリスナーが無効になりました。この質問のカイシュの回答をご覧ください。JQuery Stepsrender()メソッドを彼がそこで使用したメソッドに置き換えて、私の問題を修正しました。

于 2015-06-29T15:02:43.657 に答える