1

我无法让 JQuery 验证与一组复选框一起使用。我正在使用 ASP.NET 复选框列表生成复选框,并且我使用 JQuery 将列表中每个复选框的“名称”属性设置为相同的内容。这是写入浏览器的代码。我在第一个复选框上设置了“验证”属性,以设置必须选择至少一个复选框的规则。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 表单向导和使用自定义的 .NET 复选框列表进行 JQuery 验证太复杂了。它们并不完全兼容。.NET 需要为每个复选框列表输入具有不同的名称,这与 JQuery 验证效果不佳(当然在使用表单向导时也不会)。我将尝试在表单向导中关闭 JQuery 验证(它具有此选项),以查看表单向导是否可以正常使用 .NET 验证器的验证(包括客户端验证)。我会发回我的结果!认为我最初尝试这样做并且表单向导无法正常工作,这就是为什么我开始使用带有表单向导的 JQuery 验证,所以我目前的解决方案只是删除多页表单(没有这个表单不会太长),以简化事情,并且只依赖 .NET 验证(客户端和服务器端)。有人指出,多页表单可以让用户想知道究竟还有多少字段需要填写,而至少单页表单可以让他们看到他们需要完成的内容的完整性!

这是我正在/正在使用的表单向导:

http://thecodemine.org/

于 2012-09-11T03:35:23.157 回答