2013-10-08 62 views
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,我有java代碼在app.js.如果將它放在另一個js文件中會更好嗎?

javascrirpt

function displayType() { 

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

任何建議將是很有益的。謝謝。

+0

想要的東西likethis - > http://jsfiddle.net/6x9NZ/95/ – Ashish

回答

3

我注意到的第一件事是,你已經忘記,讓您的onclick調用到函數調用:

onclick="displayType" 

需要改變到

onclick="displayType()" 

接下來,當我把你的代碼到jsfiddle,它沒有找到該函數,因爲它不在全局範圍內。

function displayType() { 

到:當我改變了函數定義

window.displayType = function() { 

它解決了這個問題。根據您的代碼放置位置,這可能會有所不同。

+0

這樣做的伎倆。謝謝。 – user2077348

0

嘗試以下將其禁用:

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

速記,傳遞一個變量,以確定哪個單選按鈕被點擊

function displayType(def) { 
    var checked = def === '3d'; 

    document.getElementById('animation').disabled = checked; 
} 

HTML,一個變量傳遞給javascript函數指示是否它的三維或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> 
0

試試這個解決方案,

  1. 刪除<script type="text/x-handlebars" id="createProject">及其結束標記。
  2. 將前兩個單選按鈕中的代碼從onclick =「displayType」更改爲onclick =「displayType()」。
相關問題