【问题标题】:Validating Funky Radio CSS buttons with jquery使用 jquery 验证 Funky Radio CSS 按钮
【发布时间】:2017-09-04 05:10:04
【问题描述】:

我正在使用 jquery 验证插件来验证我的表单。我得到它验证我的输入并选择没有问题。但是,我正在使用一些自定义的精美单选按钮,来自这里:https://bootsnipp.com/snippets/featured/funky-radio-buttons

现在,我在每个单选按钮中添加了“必需”,并在 validate 方法中指定了“必需”。它似乎在为空时阻止提交。但我无法让它在单选按钮附近显示自定义错误消息。我看到花哨的单选按钮通过隐藏常规单选按钮来工作。我想知道这是否与错误消息的显示有关。

HTML:

<div class="funkyradio">
    <div class="funkyradio-red red">
    <input type="radio" name="track" id="radio1" value="neutral" required />
    <label for="radio1">$5.50 for Neutral</label>
    </div>
    <div class="funkyradio-yellow yellow">
        <input type="radio" name="track" id="radio2" value="2-wheel" required />
        <label for="radio2">$16 for 2 Wheel Drive</label>
    </div>
    <div class="funkyradio-green green">
        <input type="radio" name="track" id="radio3" value="4-wheel" required />
        <label for="radio3">$26.50 for 4 Wheel Drive</label>
    </div>
</div>

jquery:

$("#form").validate({
    rules: {
        email: {
          required: true,
          email: true,
          track: true
        },
        referralID: {
            required: false,
            digits: true
        },
        phone: {
            require_from_group: [1, ".contact-group"]
        },
        email: {
          require_from_group: [1, ".contact-group"]
        }
    },
    messages: {
        phone: {
            require_from_group: "'Phone Number' or 'Email' is required"
        },
        email: {
            require_from_group: "'Phone Number' or 'Email' is required"
        },
        track: "Please select a neutral, 2 wheel drive, or 4 wheel drive."

    }
});

这是让我担心的 CSS:

.funkyradio input[type="radio"]:empty,
.funkyradio input[type="checkbox"]:empty {
   display: none;
}

更新 根据要求,我正在使用这个 jquery 插件进行验证:https://jqueryvalidation.org/

【问题讨论】:

  • 如果你有“花哨”的单选按钮和/或使用 CSS 的复选框,隐藏实际的 &lt;input&gt; 元素并设置 &lt;label&gt; 的样式通常是它的完成方式,所以发布的 CSS 规则集是可以的.虽然我不能确定 validate 插件在隐藏时如何处理它们。有大量的验证 jQuery 插件,因此您应该提供此特定插件所在的链接。

标签: jquery css validation


【解决方案1】:

您的代码应进行如下调整:

$("#form").validate({
    rules: {
        email: {
          required: true,
          email: true,
          require_from_group: [1, ".contact-group"]
        },
        referralID: {
            required: false,
            digits: true
        },
        phone: {
            require_from_group: [1, ".contact-group"]
        },
        track: {
            required: true,
            require_from_group: [1, ".contact-group"]
        }
    },
    messages: {
        phone: {
            require_from_group: "'Phone Number' or 'Email' is required"
        },
        email: {
            require_from_group: "'Phone Number' or 'Email' is required"
        },
        track: "Please select a neutral, 2 wheel drive, or 4 wheel drive."

    }
});

编辑:

变化:

track: "Please select a neutral, 2 wheel drive, or 4 wheel drive."

track: {
        require_from_group: "Please select a neutral, 2 wheel drive, or 4 wheel drive."
    }

【讨论】:

  • 我在规则中添加了跟踪。我将类从.contact-group 切换到.track,然后将.track 类添加到每个无线电输入。但是当我为空提交时,我仍然没有收到任何消息。
猜你喜欢
  • 2014-07-24
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 2010-09-21
  • 2013-06-16
  • 2011-04-16
  • 2011-05-16
  • 1970-01-01
相关资源
最近更新 更多