0

一旦选择了“3D”单选按钮,想要禁用复选框“动画”。并且一旦选择“2D”就无法禁用。

html代码

  <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 的新手,我在 app.js 中有 java 代码。如果放在另一个js文件中会更好吗?

脚本

function displayType() {

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

任何建议都会非常有帮助。谢谢。

4

4 回答 4

3

我注意到的第一件事是您忘记将 onclick 调用转换为函数调用:

onclick="displayType"

需要更改为

onclick="displayType()"

接下来,当我将您的代码放入jsfiddle时,它​​没有找到该函数,因为它不在全局范围内。当我从以下位置更改函数定义时:

function displayType() {

至:

window.displayType = function () {

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

于 2013-10-08T05:27:49.363 回答
0

试试这个解决方案,

  1. 删除<script type="text/x-handlebars" id="createProject">及其结束标签。
  2. 在前两个单选按钮中将代码从 onclick="displayType" 更改为 onclick="displayType()"。
于 2013-10-08T05:12:46.530 回答
0

速记,传递一个变量来确定点击了哪个单选按钮

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>
于 2013-10-08T05:09:13.820 回答
0

尝试以下方法禁用它:

document.getElementById('animation').removeAttribute('disabled');
于 2013-10-08T05:07:44.523 回答