使用spring JS进行多个CheckBox验证?

时间:2013-12-10 05:55:14

标签: validation checkbox dojo spring-js

我在运行时创建动态复选框。我的要求是必须验证是否选中了至少一个复选框。我是用springJS做的。但要验证我必须将checkBox Id传递给spring Validation,但是这个ID数组在运行时创建。我怎么能实现这个目标?我尝试了所有的解决方案,但它并没有为我工作。我正在做这样的事情,如果我硬编码复选框id。

<script type="text/javascript">
    Spring.addDecoration(
        new Spring.ElementDecoration({
            elementId: '_CheckBox_ids',
            widgetType: 'dijit.form.CheckBox',
            widgetModule: 'dijit.form.CheckBox',
            validate: function () {
                if (dojo.query("#roo_apiUser_profile > input[type=checkbox]", 'dijit.form').filter(function (n) {
                    return n.checked;
                }).length > 0) {
                    return true;
                } else {
                    alert('choose at least one profile');
                    return false;
                }
            },
            widgetAttrs: {
                required: true
            }
        }));
</script>

1 个答案:

答案 0 :(得分:0)

您可以在form标记中添加onsubmit属性,并调用一个对复选框进行验证的函数。

或者,您可以使用AbstractElementDecoration创建自己的spring.js扩展(在dojo.declare中定义),并将validate属性传递给将执行复选框验证的函数为了你。对于elementId,您可以传递包含所有复选框的id元素的divSpring.ValidateAllDecoration调用Spring.validateAll函数。请务必在AbstractElementDecoration扩展名中进行必要的调整,以便Spring.validateAll中没有例外。