2012-12-03 33 views
0

我試圖生成一個窗體,當窗體檢查onClick()事件應啓用選擇選項。這裏是我的PHP代碼:PHP生成的HTML沒有反應到外部Javascript?

function generateOption() 
{ 
for($x = 0; $x < 10; $x++) 
{ 
    echo "<option value='".$x."'>".$x."</option>"; 
} 
} 

function generateForm($I_Id) 
{ 
    switch($I_Id) 
    { 
    case "I0001": 
    { 
     echo "<td><input type='checkbox' name='".$I_Id."' value='".$I_Id."' id='".$I_Id."' onClick='Enable(this,BT)' />"; 
     echo "Binding Tape</td><td>"; 
     echo "<select size='1' name='KuantitiMohon".$I_Id."' id='BT' disabled >";generateOption();echo "</select></td>";break; 
    } 
} 

這裏是我的javascript代碼:

function Enable(checkB,idE) 
{ 
if(checkB.checked==true) 
{ 
    document.getElementById(idE).disabled=false; 
} 
else 
    document.getElementById(idE).disabled=true; 
} 

我不是很肯定出了什麼問題,但是,在我以前的HTML代碼,我就能啓用該選項現在變成無法後,我改變到PHP。

+0

我想你已經將JavaScript代碼保存在單獨的文件中。你正在加載你的JavaScript文件? – Cindrella

+0

是的,使用外部js –

回答

0
Enable(this,BT) 

您試圖傳遞「對象」BT,但您的意圖是傳遞名爲BT的「字符串」ID。你需要圍繞「BT」像這樣添加引號:

onClick=\"Enable(this,'BT')\" 

你需要逃避周圍的onclick引號使PHP不以爲這是你的字符串的結尾。

+0

thx!我通過更改onclick ='啓用(this,BT)'來解決它onclick =啓用(這,'BT') –

+0

雖然這將起作用,它不會被視爲「有效的HTML標記」。如果你能忍受它,這取決於你。 –