现在我正在开发一个使用“内联表单验证引擎 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 个不同的输入并在第四个隐藏中重新组合它场地。
但由于某种原因 - 我没有看到 - 它不适用于我的单选按钮列表。
有没有人遇到过这个插件的类似问题并且能够解决它,或者是否有人偶然知道如何尝试找到问题......我不得不承认我现在感觉有点卡住了
提前感谢您提供任何有助于解决问题的帮助和/或建议!