单击某个单选按钮后如何禁用复选框

How to disable an checkbox once a certain radio button is clicked.

本文关键字:何禁用 复选框 单选按钮 单击      更新时间:2023-09-26

想要在选择"3D"单选按钮后禁用"动画"复选框。 并且一旦选择了"2D",也取消禁用。

网页代码

  <script type="text/x-handlebars" id="createProject">
    <div class="projectForm">
      <table cellpadding="10">
        <tr>
          <td> Project Name </td>
          <td> <input type="text" name="projectName" /> </td>
        </tr>
        <tr>
          <td> Project Description </td>
          <td> <textarea name="projectDesc" > </textarea> </td>
        </tr>
        <tr>
          <td> Pipleline Type </td>
          <td> 
            <input type="radio" name="pipelineType" value="2d" id="2d" checked="checked" onclick="displayType"> 2D Pipleline <br>
            <input type="radio" name="pipelineType" value="3d" id="3d" onclick="displayType"> 3D Pipleline </td>
        </tr>
        <tr>
          <td> Project Roles </td>
          <td> <input type="checkbox" name="projectRoles" id="animation"value="Animation Clean Up"> Animation Clean Up  
            <input type="checkbox" name="projectRoles" value="Background Painting"> Background Painting 
            <input type="checkbox" name="projectRoles" value="Casting & Recording"> Casting & Recording
            <input type="checkbox" name="projectRoles" value="Color Styling"> Color Styling
          </td>
        </tr>
      </table>
    </div>
  </script>

我是 ember.js 的新手,我在应用程序中有 java 代码.js。如果把它放在另一个js文件中会更好吗?

javascrirpt

function displayType() {
    if(document.getElementById('2d').checked) {
        document.getElementById('animation').disabled = false;
    }
    else {
        document.getElementById('animation').disabled=true;
    }
}

任何建议都会很有帮助。谢谢。

我注意到的第一件事是你忘记将onclick调用变成函数调用:

onclick="displayType"

需要更改为

onclick="displayType()"

接下来,当我将您的代码放入 jsfiddle 中时,它找不到该函数,因为它不在全局范围内。 当我将函数定义从:

function displayType() {

自:

window.displayType = function () {

它解决了问题。 这可能会有所不同,具体取决于您放置代码的位置。

尝试以下操作来禁用它:

document.getElementById('animation').removeAttribute('disabled');

尝试此解决方案,

  1. 删除<script type="text/x-handlebars" id="createProject">及其结束标记。
  2. 在前两个单选按钮中将代码从 onclick="displayType" 更改为 onclick="displayType()"。

速记,传递变量以确定单击哪个单选按钮

function displayType(def) {
  var checked = def === '3d';
  document.getElementById('animation').disabled = checked; 
}

HTML,将一个变量传递给 javascript 函数,指示其 3d 还是 2d 被点击

<input type="radio" name="pipelineType" value="2d" id="2d" checked="checked" onclick="displayType('2d')"> 2D Pipleline <br>
<input type="radio" name="pipelineType" value="3d" id="3d" onclick="displayType('3d')"> 3D Pipleline </td>