【问题标题】:check radio button on click input text (form)检查单击输入文本(表单)上的单选按钮
【发布时间】:2014-04-10 09:59:47
【问题描述】:

我正在尝试将单选按钮更改为在一个 FORM 中单击输入文本时选中。
这是我的表格:

<input type="radio" name="sel_limit" id="sel_limit_1" value="1" <?php if($limit_days) echo 'checked'?>> <?php echo MOD_CO_DAYS; ?> <input type="text" class="inputbox" name="limit_1" id="limit_1" value="<?php echo $limit_days; ?>" size="5"/>&nbsp;
<input type="radio" name="sel_limit" id="sel_limit_2" value="2" <?php if($limit_weeks) echo 'checked'?>> <?php echo MOD_CO_WEEKS; ?> <input type="text" class="inputbox" name="limit_2" id="limit_2" value="<?php echo $limit_weeks; ?>" size="5"/>

这里是js代码:

$('#limit_1').click(function(){
    $('#limit_2').val('0');
    $('#sel_limit_1').attr('checked', true);
});

$('#limit_2').click(function(){
    $('#limit_1').val('0');
    $('#sel_limit_2').attr('checked', true);
});

我尝试使用 attrprop 有和没有 true,没有任何反应。
这不起作用,因为是一种形式?
我正在使用 jquery 1.8.3

【问题讨论】:

  • 您可能想再次尝试.prop,因为它确实有效:jsfiddle.net/b38Vr
  • 我认为 OP 没有准备好在 DOM 中编写他的代码试试 $(document).ready(function(){$('#limit_1').click(function(){..... }); });
  • 我尝试了所有这些答案,没有。 document.ready 已经在里面了
  • @Riturajratan 不一样,可能是因为是 FORM??

标签: jquery forms


【解决方案1】:

使用新的 .prop() 函数:

  $('#sel_limit_2').prop('checked', true);

jQuery 1.5 及以下

.prop()函数不可用,需要使用.attr()。

  $('.myCheckbox').attr('checked','checked');

【讨论】:

    【解决方案2】:

    attr 使用已选中

    所有反对者都可以查看此演示并查看其作品DEMO

    $(document).ready(function(){
    $('#limit_1').click(function(){
         $("input[type='text'").val('');
         $("input[type='radio'").removeAttr("checked"); 
        $('#limit_2').val('0');
        $('#sel_limit_1').attr('checked', 'checked');
    });
    
    $('#limit_2').click(function(){
       $("input[type='text'").val('');
       $("input[type='radio'").removeAttr("checked");      
       $('#limit_1').val('0');
        $('#sel_limit_2').attr('checked', 'checked');
     });
    });
    

    prop 使用 true

    $(document).ready(function(){
    $('#limit_1').click(function(){
          $("input[type='text'").val('');
          $("input[type='radio'").prop("checked",false);     
          $('#limit_2').val('0');
          $('#sel_limit_1').prop('checked', true);
    });
    
    $('#limit_2').click(function(){
          $("input[type='text'").val('');
          $("input[type='radio'").prop("checked",false);        
          $('#limit_1').val('0');
          $('#sel_limit_2').prop('checked', true);
    });
    });
    

    【讨论】:

    • 因为attr不应该用来设置选中的属性
    • true 和检查是在 jquery 中做同样的事情
    • @RGraham 的小提琴解决方案在 chrome 34.0.1847.116 上对我来说效果很好;注意:使用 attr 失败。
    • 大家好,请看我的演示,我不知道你为什么说它不起作用我总是尝试上面的代码,所以我不同意你们的任何建议
    • 如果您想帮助的人告诉您,您的解决方案不起作用,他可能没有恶意,但根本无法使您的解决方案起作用。因此,您可能希望探索它的原因,而不是仅仅指向另一个环境中的演示。顺便说一句,您的代码在语法上不正确(属性选择器没有关闭]),因此它依赖于宽容的解析器。
    猜你喜欢
    • 2016-03-27
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多