【问题标题】:jQuery Validate, determining if a particular radio element is selected, then requiring a text input, without IDsjQuery Validate,确定是否选择了特定的单选元素,然后需要文本输入,没有 ID
【发布时间】:2011-07-14 17:12:02
【问题描述】:

长时间聆听,第一次来电……

我在一个表单中有两个问题,第一个是“是”或“否”对单选按钮:

“您之前向我们提交过申请吗?( ) 是 ( ) 否”

...第二个是文本输入,允许使用草率的日期值:

“如果,你是什么时候申请的?[_________ _]"

您可能已经看到我要解决的问题了……如果从单选按钮中选择“是”,我只希望第二个问题是必需的。

我已经做了一堆谷歌搜索,搜索 jQuery 的网站(不好玩也不简单),并搜索了这个非常好的网站,但我得到的最接近答案的似乎总是使用唯一的 ID 属性在无线电输入上。

遗憾的是,我遇到了无线电输入不能具有 ID 属性的情况,因为它们是由 CMS 生成的。所以,我试图在这对无线电输入上使用唯一名称属性,同时检查值为 Yes 的是否是“已选择”/“已检查”。

这是我的 HTML:

<li>
    <span class="reqField">*</span> Have you filed an application with us before?<br />
    <label class="radioInput"><input type="radio" name="app_prior_app" value="Yes" /> Yes</label>
    <label class="radioInput"><input type="radio" name="app_prior_app" value="No" /> No</label>
</li>
<li>
    <label for="app_prior_app_date">If <em>yes</em>, when did you apply?</label><br />
    <input type="text" name="app_prior_app_date" value="" size="40" id="app_prior_app_date" />
</li>

这是我的 JS到目前为止

app_prior_app: "required",
app_prior_app_date: {
    required: function(element) {
        return $("[name=app_prior_app]").val() == "Yes";
    }
}

这自然不会按预期工作。我知道如果我可以在每个无线电输入上抛出 ID,这对我来说会更容易(我不太擅长这些东西),但我假设有一种方法可以使用只是唯一的 name 属性并确定 value “是”是否是选中的,然后(并且只有这样)继续并要求输入文本?

【问题讨论】:

    标签: jquery validation dependencies radio-button


    【解决方案1】:

    你可以做一个简单的修改来得到你需要的东西可能看起来像这样:

    app_prior_app: "required",
    app_prior_app_date: {
        required: function() {
            return $("input[name=app_prior_app]:checked").val() === "Yes";
        }
    }
    

    不过,请确保在 app_prior_app 单选按钮发生更改时运行 app_prior_app_date.required(),这样无论用户在页面上做什么,脚本都可以保持正确的状态。

    【讨论】:

      【解决方案2】:

      如果你要使用 jquery,你可以这样做:

      var input_radio = $('input[name="app_prior_app"]:checked').val();
      

      判断它是否被检查和值。如果input_radio == "yes" 那么你可能会.hide().show() 下一个问题

      【讨论】:

      • 感谢杰森的回答。
      猜你喜欢
      • 1970-01-01
      • 2011-07-03
      • 2011-02-02
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 2018-09-16
      • 2012-07-06
      • 2014-08-07
      相关资源
      最近更新 更多