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>