启用该单选按钮后,(Firefox)无线电onclick事件无效(从禁用状态)

时间:2016-05-30 06:20:36

标签: javascript jquery html firefox radio-button

要求是如果点击重置按钮,

  1. 必须启用所有单选按钮。
  2. 必须检查每日单选按钮。
  3. 这些代码适用于IE,Chrome和Safari。但不适用于Firefox!

    在firefox中, [document.getElementById(' day')。click();在JAVASCRIPT上 第7行。] 通过以下步骤不会很好地工作。

    1. 单击禁用按钮(禁用所有单选按钮。)
    2. 点击重置(启用所有单选按钮和每日单选按钮。)
    3. 此处未在Firefox上检查每日单选按钮。

      (如果单选按钮被更改,还有一些其他程序。所以我需要触发每日单选按钮的onclick事件)

      HTML

          <input type="radio" name="sumType" value="1" id="day"  tabindex="1">Daily
          <input type="radio" name="sumType" value="2" id="month" tabindex="2" checked>Monthly
          <input type="button" value="Disable" onclick="disableRadio()" id="rd1"/>
          <input type="button" value="Reset" onclick="init()" id="rd2"/>
      

      的Javascript

           function disableRadio(){
             $("input[type=radio]").attr('disabled','disabled');
           }
      
           function init(){
             $("input[type=radio]").removeAttr("disabled");
             document.getElementById('day').click();
           }
      

      DEMO&gt;&gt; https://jsfiddle.net/znjjjd6e/10/

4 个答案:

答案 0 :(得分:1)

如果您只需要查看day电台,

$('#day')[0].click();

<强> Fiddle

document.getElementById('day').checked = true;

document.getElementById('day').click()无法触发广播的实际鼠标点击事件,它会触发onclick处理程序 - Refer

此外,根据Rayon

的建议,使用prop()会更好

答案 1 :(得分:0)

要检查任何单选按钮,只需执行以下操作:

DEMO:https://jsfiddle.net/hj5qw8w0/

function init(){
  $("input[type=radio]").removeAttr("disabled");
  el = window.document.getElementById('day'); // add this lines
  el.checked = true; // add this lines - it will checked the day radio button
}

答案 2 :(得分:0)

您需要替换javascript语句: -

document.getElementById('day').click();

document.getElementById('day').checked=true;

并且代码也可以在Firefox中使用

答案 3 :(得分:0)

Firefox不支持click()。您可以查看SO question

因此document.getElementById('day').click();无效

由于您使用的是jquery,因此您可以使用其中任何一个

function init(){
  $("input[type=radio]").removeAttr("disabled");
    //$('#day').trigger('click'); // either use this
  $('#day').attr('checked',true); // or you can also use this
}

检查Demo