【问题标题】:Add required attribute when radio is checked选中radio时添加必需的属性
【发布时间】:2014-08-16 12:34:01
【问题描述】:

我有一组称为“价格”的单选按钮。选择“€”单选按钮时,我想专注于文本输入字段,并且应该需要该文本输入字段。 当我单击另一个选项时,应删除所需的属性。

这可以通过 Javascript 或 jQuery 实现吗? 我在这里找到了一个 jQuery sn-p,但它似乎不起作用。这就是我现在拥有的:

<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/

【问题讨论】:

  • .is(':checked') 之后添加) 这是一个重大错误。而不是继续前进
  • 并使用更好的编辑器进行编码
  • 谢谢。但是,它仍然无法正常工作......我想我应该转储 Sublime Text 然后:p
  • 使用 sublime 但你应该使用相关的 js 插件进行错误测试

标签: javascript required


【解决方案1】:

根据this answer,您必须监控两个无线电输入的变化。所以在第二个收音机之后移动你的 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');
    }
});

【讨论】:

  • 您还需要将#value_input 元素的点击更改为document.getElementById('value_radio').click(); 之类的内容,以正确触发更改处理程序。
【解决方案2】:

您的代码中有两个(实际上是三个)错误。

首先。语法无效。您应该按照 @Hushme 在 cmets 中的建议修复右大括号。

第 (2) 个。 您对 jsfiddle 的使用也是无效的。您应该将代码粘贴到站点的 JavaScript 部分并启用 jQuery 库。

第二个。 $('#value_input').attr('required') 没有创建属性;这是一个吸气剂。您应该在那里使用正确的设置器:

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

第三个​​。当用户取消选择单选按钮时,单选按钮更改事件不会触发。所以你应该处理所有按钮上的事件:

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

我已经修复了你的 jsfiddle,请参阅 http://jsfiddle.net/fhfrzn1d/4/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2021-10-20
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多