添加所需的属性时,无线电检查(Add required attribute when radio i

2019-10-20 17:22发布

我有一组单选按钮称为“价格”的。 当选择“€”单选按钮,我希望把重点放在文本输入字段,并应要求文本输入字段。 当我点击另一个选择,requried属性应该被删除。

这是可能通过Javascript或jQuery的? 我发现一个jQuery的片段在这里,但它似乎并不奏效。 这是我现在有:

<input type="radio" name="price" value="value" id="value_radio" onclick="document.getElementById('value_input').focus()" required>

<label for="value_input">&euro;</label>
<input type="text" name="price_value" id="value_input" pattern="\d+(,\d{1,2})?" 
    onclick="document.getElementById('value_radio').checked=true">

<script>
    $('#value_radio').change(function () {
        if($(this).is(':checked')) {
            $('#value_input').attr('required');
        } else {
            $('#value_input').removeAttr('required');
        }
    });
</script>

<input type="radio" name="price" id="free" value="free">
<label for="free">Free</label>

的jsfiddle: http://jsfiddle.net/fhfrzn1d/

Answer 1:

根据这个答案 ,你必须监控两个无线电输入的变化。 因此,第二个无线电移动后您的JavaScript脚本。

也有缺少)

小提琴更新: http://jsfiddle.net/fhfrzn1d/1/

$('input[name="price"]').change(function () {
    if($("#value_radio").is(':checked')) {
        $('#value_input').attr('required', true);
    } else {
        $('#value_input').removeAttr('required');
    }
});


Answer 2:

您的两个代码(真三)失误。

第一。 语法无效。 如@Hushme建议的意见,您应该修复右括号。

第一(2)。 你的jsfiddle的使用是无效的了。 你应该将代码粘贴到网站的JavaScript部分,也让jQuery库。

第二。 $('#value_input').attr('required')未创建的属性; 这是一个getter。 你应该有使用正确的setter方法:

$('#value_input').attr('required', true);

第三。 当用户取消选择单选按钮的单选按钮更改事件不点火。 所以,你应该处理上的所有按钮事件:

$('input[name="price"]').change(function () { ... });

我定你的jsfiddle,看到http://jsfiddle.net/fhfrzn1d/4/



文章来源: Add required attribute when radio is checked