如何验证引导单选按钮

时间:2017-12-28 14:31:00

标签: javascript jquery twitter-bootstrap-3

我正在尝试验证表单的这一部分,但无论选择哪个按钮,option1都返回false。如何让每个无线电在它们处于活动/非活动状态时具有不同的值,或者从按钮组获取值?

$(function register(){
$('.err').hide();
$("#submit").click(function() { 
if  ($('#option1').prop("checked", false)){
        $("#fcerr").show();
    }
if  ($('#option1').prop("checked")){
    $("#fcerr").hide();
}
    });
});
<div class="btn-group btn-group-justified btn-group-sm" data-toggle="buttons">
       <label id="lopt1" class="btn btn-primary">
       <input type="radio" name="option1" id="option1" autocomplete="off"> Staff
       </label>
       <label id="lopt2" class="btn btn-primary">
       <input type="radio" name="option2" id="option2" autocomplete="off"> Client
       </label>
</div>
<div><label class="err" id="fcerr">Error Message</label></div>

<input name="register" type="submit" value="Register" class="btn btn-primary btn-lg btn-block" id="submit">
我也试过获取无线电盒的值,但无论哪个无线电有效,它们总是“开启”。
var client = $("#option2").val();
alert(client);

2 个答案:

答案 0 :(得分:1)

一些事情:

  1. 您的代码段中没有包含javascript框架,但您的问题是用jQuery标记的。
  2. 第4行if ($('#option1').prop("checked", false)){正在更改您尝试评估的值。
  3. 如果要将选项元素视为可以验证的组,则选项元素应共享相同的名称属性

答案 1 :(得分:1)

使用您的代码:

if  ($('#option1').prop("checked", false)){
    $("#fcerr").show();
}

您实际上正在设置属性&#34;已检查&#34;每次都是假的。完成后,if语句会收到一个真值,这样它就会执行if块中的内容。

请尝试这样的验证:

if($('#option1').is(':checked')){
    //...
}

此外,如果您希望您的输入实际上表现为一个组(意味着在给定时间只能检查一个),您必须共享相同的name属性,您可以将您的html更新为:

<label id="lopt1" class="btn btn-primary">
       <input type="radio" name="myOptions" id="option1" autocomplete="off"> Staff
       </label>
       <label id="lopt2" class="btn btn-primary">
       <input type="radio" name="myOptions" id="option2" autocomplete="off"> Client
       </label>