javascript - Peter Blum 验证器未在 JQuery Steps 向导内触发

标签 javascript jquery validation jquery-steps

我正在使用 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") 手动调用验证,它会正确返回该步骤有问题(步骤图 block 变为红色),但不会显示验证器附带的错误消息。

深入研究这是为什么,似乎<span> VAM 验证器发出的标签具有内联 visibility防止它们被隐藏的标签,然后 VAM 的 javascript 会在需要时删除并重新应用该标签(例如,当验证器失败时,然后当验证器再次成功时)。 visibility当向导 div 内验证失败时,标签不会被正确删除。

有谁知道为什么会出现这种情况,以及我该如何解决它?

编辑:作为引用,这是发出的代码:

 <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>

最佳答案

问题在于,JQuery Steps 在其渲染方法期间将事件监听器从 DOM 中剥离,这会禁用 Peter Blum 验证器完成其工作所依赖的监听器。请参阅Kaish的回答this question ;将 JQuery Steps render() 方法替换为他在那里使用的方法解决了我的问题。

关于javascript - Peter Blum 验证器未在 JQuery Steps 向导内触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034875/

相关文章:

javascript - JS中日期的日期名称

javascript - 哪个元素影响我的 jquery 下拉菜单的定位 --> 使其正确

javascript - 将随机数插入到背景颜色的内联样式中

java - 如何动态更新 OOTB hibernate validator 注释的参数?

javascript - 了解 .map 和 Stringify 与对象

Javascript keyup 调用其他表值

javascript - jQuery:无法获取单选按钮值

javascript - 输入字段,强制格式 00 :00. 00

ruby-on-rails - ArgumentError:您需要使用:if提供至少一个验证

java - GWT 2.6 的用户代理?