当我检查选项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中获取它,但是他们成功地使用了这个代码但是当我尝试它不起作用时
答案 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上的此示例。