0

我在运行时创建动态复选框。我的要求是必须验证至少一个复选框是否选中。我正在使用 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>
4

1 回答 1

0

您可以在表单onsubmit标签中添加属性并调用对复选框进行验证的函数。

或者,您可以创建自己的AbstractElementDecoration(在 中定义spring.js)的扩展,dojo.declare并使用一个函数传递给validate属性,该函数将为您进行复选框验证。因为elementId您可以传入包含所有复选框id的元素。调用函数。确保在扩展中进行必要的调整,以便在.divSpring.ValidateAllDecorationSpring.validateAllAbstractElementDecorationSpring.validateAll

于 2013-12-12T12:35:41.127 回答