【问题标题】:Bootstrap Radiobutton int jquery validationjquery验证中的引导单选按钮
【发布时间】:2013-02-16 05:43:58
【问题描述】:

我尝试了几个不同的选项,同时试图避免设置默认选定值。

选项 1

<div class="control-group">
    <h4>Text</h4>
    <div class="controls">
        <div hidden="hidden" >@Html.EditorFor(m => m.pc.PS1)</div>                            
        <div class="btn-group" data-toggle-name="pc.PS1" data-toggle="buttons-radio">
        <button type="button" value="11" class="btn@((Model.pc.PS1 == 11) ? " active" : string.Empty )" data-toggle="button">Yes</button>
        <button type="button" value="12" class="btn@((Model.pc.PS1 == 12) ? " active" : string.Empty )" data-toggle="button">No</button>
        <button type="button" value="13" class="btn@((Model.pc.PS1 == 13) ? " active" : string.Empty )" data-toggle="button">N/A</button>
    </div>
    @Html.ValidationMessageFor(model => model.pc.PS1)
</div>

选项 2

<div class="control-group">
     <h4>Text</h4>
     <div class="controls">
         @Html.HiddenFor(m => m.pc.F1FallsRiskAssessmentFRASE)
         <div class="btn-group" data-toggle-name="pc.PS2" data-toggle="buttons-radio">
         <button type="button" value="11" class="btn@((Model.pc.PS2== 11) ? " active" : string.Empty )" data-toggle="button">Yes</button>
         <button type="button" value="12" class="btn@((Model.pc.PS2== 12) ? " active" : string.Empty )" data-toggle="button">No</button>
         <button type="button" value="13" class="btn@((Model.pc.PS2== 13) ? " active" : string.Empty )" data-toggle="button">N/A</button>
         </div>
         @Html.ValidationMessageFor(model => model.pc.PS2)
      </div>
</div>

$('#ctFRM').validate({
            rules: {
                "pc.PS1": { required: true, minlength: 2 },
                "pc_PS2": { required: true, minlength: 2 },

页面上隐藏的 ID 是 pc_PS2 但名称是 pc.PS2 使用 firebug 脚本选项卡并在其上放置一个断点显示默认值为 0 当验证为 pc_PS2 但没有验证消息时不管“。”或“_”。

它们确实适用于使用“。”的文本框输入。在验证规则和“_”上设置掩码。

我曾尝试在单选按钮上使用所需的验证,每个单选按钮的值为 1/2/3,但由于页面默认隐藏的值为 0,因此它不会触发所需的真实验证。

接下来,我尝试将选项值设置为 11/12/13,因此它们的长度为 2,因此我可以使用 minlength 2 来阻止提交,但这在更改之前不会生效。

所以我留下了不显眼的验证或为每个问题设置每个按钮设置 onclick 的备份选项,以期获得正常字符串所需的验证以处理另一组隐藏值。

有什么想法或解决方案吗?

【问题讨论】:

  • 显示渲染的 HTML 代码。其次,在.validate()内部声明规则时,只能使用name属性。第三,如果不设置选项ignore: [],您将无法验证隐藏字段。最后,您说得通了,我几乎无法理解您要告诉我们什么……您的问题/问题到底是什么?
  • @Sparky 我试图展示我尝试过的所有不同解决方案,以防万一 1 被破坏但正确的 1 使用或至少表明我已经尝试了所有我能想到的并且没有运气,无论如何,我的观点是使用 name 属性不会在浏览器中获得值,但 Id 会。我在这篇文章中的观点是,我想验证使用 int 值的引导单选按钮,我现在将测试忽略选项,看看它是如何反应的。
  • @Sparky 将忽略选项修复它,所以如果你把它作为一个答案,我会勾选它正确。

标签: twitter-bootstrap asp.net-mvc-4 jquery-validate radio-button


【解决方案1】:

为了验证任何隐藏字段,您必须如下设置ignore 选项。

$('#ctFRM').validate({
    // options and rules,
    ignore: []
});

更多信息请参见:https://stackoverflow.com/a/8565769/594235

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    相关资源
    最近更新 更多