当我检查某个单选按钮时,如何自动设置输入文本

时间:2017-05-09 02:25:40

标签: jquery html

当我检查选项1单选按钮时,如何设置输入文本我需要为每个单选按钮设置值,当我选中选项2时,不需要输入文本

     <input type="radio"  name="ladder" value="ans1">
     <label for="option1">Option1</label><br>

     <input type="radio"  name="ladder" value="ans2">
     <label for="option2">Option2</label><br>

     <input type="text" name="ladder-meters" id="ladder-meters">

下面是javascript编码

 <script>
    $('input[name="ladder"]').change(function () {
        if($(this).is(':checked')) {
            $('#ladder-meters').attr('required');
        } else {
            $('#ladder-meters').removeAttr('required');
        }
    });
<script>
那些编码基本上不是我的。我从stackoveflow中的其他ppl中获取它,但是他们成功地使用了这个代码但是当我尝试它不起作用时

1 个答案:

答案 0 :(得分:2)

当您使用jQuery和只有两个值(开启和关闭)的属性时,您应该使用prop() function。在你的情况下,它将是:

if ($(this).is(':checked')) {
    $('#ladder-meters').prop('required', true);
} else {
    $('#ladder-meters').prop('required', false);
}

或者,如果你想保存几行:

var required = $(this).is(':checked');

$('#ladder-meters').prop('required', required);

编辑:

在您的情况下,您的if条件也存在问题。您应该检查单选按钮元素的当前值,如下所示:

$('[name=ladder]').change(function() {
    var required = ($(this).val() === 'ans1');

    $('#ladder-meters').prop('required', required);
});

请参阅this CodePen上的此示例。