Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于单选按钮启用/禁用功能按钮_Javascript_Jquery - Fatal编程技术网

Javascript 基于单选按钮启用/禁用功能按钮

Javascript 基于单选按钮启用/禁用功能按钮,javascript,jquery,Javascript,Jquery,当页面加载带有单选按钮的表格时,将显示。下表3禁用了按钮X、Y、Z。当用户仅从表中选择单选按钮时,应启用这三个按钮X、Y、Z?Javascript: $('table input[type="radio"]').click(function() { $('input[type="button"]').removeAttr('disabled'); }); HTML: ... ... Javascript: $('table input[type="radio"]').click(fu

当页面加载带有单选按钮的表格时,将显示。下表3禁用了按钮X、Y、Z。当用户仅从表中选择单选按钮时,应启用这三个按钮X、Y、Z?

Javascript:

$('table input[type="radio"]').click(function() {
    $('input[type="button"]').removeAttr('disabled');
});
HTML:


...
...
Javascript:

$('table input[type="radio"]').click(function() {
    $('input[type="button"]').removeAttr('disabled');
});
HTML:


...
...

可以将侦听器附加到表中,并且可以通过名称引用单选按钮集。当表中的单选按钮上发生单击事件时,可以根据是否选中特定组中的任何按钮来启用或禁用X、Y和Z按钮。逻辑需要考虑表单重置的情况,例如

<form>
  <table id="table0" style="border: 1px solid black;">
    <tr>
      <td><input type="radio" name="group1">
      <td><input type="radio" name="group1">
      <td><input type="radio" name="group1">
    <tr>
      <td><input type="reset">
      <td>
      <td>
  </table>
  <label for="r2-0">X&nbsp;<input type="radio" name="group2" id="r2-0" value="x"></label>
  <label for="r2-1">Y&nbsp;<input type="radio" name="group2" id="r2-1" value="y"></label>
  <label for="r2-2">Z&nbsp;<input type="radio" name="group2" id="r2-2" value="z"></label>
</form>

<script type="text/javascript">
function enableButtons() {
  var buttons1 = document.getElementsByName('group1');
  var buttons2 = document.getElementsByName('group2');
  var checkedState = false;

  // Check if any buttons in group 1 have been checked
  for (var i=0, iLen=buttons1.length; i<iLen; i++) {
    if (buttons1[i].checked) {
      checkedState = true;
      break;
    }
  }

  // Enable or disable group 2 buttons based on above result
  // When disabling, also uncheck any that are checked
  for (var j=0, jLen=buttons2.length; j<jLen; j++) {
    if (!checkedState) {
      buttons2[j].checked = false;
      buttons2[j].disabled = true;
    } else {
      buttons2[j].disabled = false;
    }
  }
}

window.onload = function() {

  // Disable X, Y & Z buttons
  var buttons = document.getElementsByName('group2');
  for (var i=0, iLen=buttons.length; i<iLen; i++) {
    buttons[i].disabled = true;
  }

  // Add onlick listener to table
  var table  = document.getElementById('table0');
  if (table) table.onclick = function() {
    window.setTimeout(enableButtons, 1);
  }
}

</script>

X
Y
Z
功能启用按钮(){
var buttons1=document.getElementsByName('group1');
var buttons2=document.getElementsByName('group2');
var checkedState=false;
//检查是否已检查组1中的任何按钮

对于(var i=0,iLen=buttons1.length;i监听器可以附加到表中,单选按钮集可以通过名称引用。当表中的单选按钮上发生单击事件时,可以根据是否选中特定组中的任何按钮来启用或禁用X、Y和Z按钮。逻辑需要考虑以下情况:表格被重新设置,例如

<form>
  <table id="table0" style="border: 1px solid black;">
    <tr>
      <td><input type="radio" name="group1">
      <td><input type="radio" name="group1">
      <td><input type="radio" name="group1">
    <tr>
      <td><input type="reset">
      <td>
      <td>
  </table>
  <label for="r2-0">X&nbsp;<input type="radio" name="group2" id="r2-0" value="x"></label>
  <label for="r2-1">Y&nbsp;<input type="radio" name="group2" id="r2-1" value="y"></label>
  <label for="r2-2">Z&nbsp;<input type="radio" name="group2" id="r2-2" value="z"></label>
</form>

<script type="text/javascript">
function enableButtons() {
  var buttons1 = document.getElementsByName('group1');
  var buttons2 = document.getElementsByName('group2');
  var checkedState = false;

  // Check if any buttons in group 1 have been checked
  for (var i=0, iLen=buttons1.length; i<iLen; i++) {
    if (buttons1[i].checked) {
      checkedState = true;
      break;
    }
  }

  // Enable or disable group 2 buttons based on above result
  // When disabling, also uncheck any that are checked
  for (var j=0, jLen=buttons2.length; j<jLen; j++) {
    if (!checkedState) {
      buttons2[j].checked = false;
      buttons2[j].disabled = true;
    } else {
      buttons2[j].disabled = false;
    }
  }
}

window.onload = function() {

  // Disable X, Y & Z buttons
  var buttons = document.getElementsByName('group2');
  for (var i=0, iLen=buttons.length; i<iLen; i++) {
    buttons[i].disabled = true;
  }

  // Add onlick listener to table
  var table  = document.getElementById('table0');
  if (table) table.onclick = function() {
    window.setTimeout(enableButtons, 1);
  }
}

</script>

X
Y
Z
功能启用按钮(){
var buttons1=document.getElementsByName('group1');
var buttons2=document.getElementsByName('group2');
var checkedState=false;
//检查是否已检查组1中的任何按钮

对于(VAR i=0,ILN=Butns1.1长度;I2不清楚您要问的是什么,是否应该启用按钮,或者如何启用按钮?我不清楚您在问什么。您是询问是否应该启用按钮,还是要启用按钮?为了OP的好处,他们应该考虑使用ID选择器或CSS选择器,以便页面上的每个按钮。当您单击任何单选按钮时,不会启用。此答案将向所有raido按钮(包括禁用的按钮)添加onclick侦听器,这似乎不合适。为了对单选按钮进行分组,它们必须共享一个公用名称(示例中省略),因此按名称选择它们更有意义。如果没有选择单选按钮(这是不允许的,但许多网页忽略了良好的设计原则),这似乎也是合理的然后,X、Y和Z按钮应该再次被禁用。如果已经被禁用,如果检查了它们,它们也应该是未选中的。对于OP的好处,他们应该考虑使用ID选择器或CSS选择器,这样当单击任何单选按钮时,页面上的每个按钮都不能启用。这个答案将添加一个单击按钮。不适用于所有raido按钮,包括禁用的按钮,这似乎不合适。为了对单选按钮进行分组,它们必须共享一个通用名称(示例中省略),因此按名称选择它们更有意义。如果没有选择单选按钮,这似乎也是合理的(这是不允许发生的,但许多网页忽略了良好的设计原则)然后X、Y和Z按钮应该再次被禁用。如果被禁用,如果有任何按钮被选中,它们可能也应该被取消选中。