0

现在我正在开发一个使用“内联表单验证引擎 2.6.2”、C.Dugas 和 O.Refalo 的 jQuery 插件的项目(因为这里的很多人都最了解它)。最重要的是,我们正在修改许多页面以使用 knockout.js。

现在我的问题是: 我的用例确定需要选择一个选项,并且还要求用户明确选择该选项 - 特别是“我没有工作”选项 - 因此我建议使用该选项作为默认选项是不可接受的。

根据我通过给定 jquery-plugin 的原始文档找到的内容,我得出结论,我的输入需要属性type="radio"data_validation_engine="validate[required] group"

根据该信息,我最终使用此代码来创建我的单选按钮:

<div data-bind="foreach: radioButtonOptions.Company, visible: true" style="">
            <div>
                <input type="radio" data_validation_engine="validate[required] radio" name="Company" data-bind="value: Value, checked: $root.model.Company, attr: { id: 'Company'+Value() }" data-errormessage-value-missing="Please choose your employer." data-prompt-target="ym-message-Company" value="0" id="Company0">
                <label data-bind="attr: { for: 'Company'+Value() }, text:Text" for="Company0">I don't have a job!</label>
            </div>

            <div>
                <input type="radio" data_validation_engine="validate[required] radio" name="Company" data-bind="value: Value, checked: $root.model.Company, attr: { id: 'Company'+Value() }" data-errormessage-value-missing="Please choose your employer." data-prompt-target="ym-message-Company" value="1" id="Company1">
                <label data-bind="attr: { for: 'Company'+Value() }, text:Text" for="Company1">Softdrink Company</label>
            </div>

            <div>
                <input type="radio" data_validation_engine="validate[required] radio" name="Company" data-bind="value: Value, checked: $root.model.Company, attr: { id: 'Company'+Value() }" data-errormessage-value-missing="Please choose your employer." data-prompt-target="ym-message-Company" value="2" id="Company2">
                <label data-bind="attr: { for: 'Company'+Value() }, text:Text" for="Company2">Food Company</label>
            </div>
        </div>

所以这将最终出现在 3 个标记良好且未选中的 RadioButtons 中。

然后,我的提交按钮将在发送帖子之前检查表单的有效性:

$("#submitButton").click(function (event) {
    if (!$('#inputForm').validationEngine('validate'))
        return false;
    // submit per ajax ...
});

从而在验证失败时阻止提交。

这适用于我在选择列表和文本框上设置的任何“验证[必需]”规则,甚至通过我的 DateTime 编辑器模板的一个小扩展,它将日期拆分为 3 个不同的输入并在第四个隐藏中重新组合它场地。

但由于某种原因 - 我没有看到 - 它不适用于我的单选按钮列表。

有没有人遇到过这个插件的类似问题并且能够解决它,或者是否有人偶然知道如何尝试找到问题......我不得不承认我现在感觉有点卡住了

提前感谢您提供任何有助于解决问题的帮助和/或建议!

4

1 回答 1

0

抱歉,我的代码生成中有错字。我的生成器写的是“data_validation_engine”而不是“data-validation-engine”。可悲的是,我只是没有看到我的代码和插件官方文档页面的示例代码之间的区别。但是 - 触发了 leonhart 的评论 - 仔细查看引擎源代码后,我终于意识到了错字。再次感谢莱昂哈特!

于 2013-06-26T08:21:08.270 回答