2012-10-24 115 views
0

我正在使用ColdFusion 8創建搜索表單,並希望用戶能夠在需要高級搜索選項的情況下選中框。複選框以顯示更多選項

這是我到目前爲止有:

在我的JavaScript文件:

function showDiv(advancedVal) 
{ 
    if(advancedVal == '') { 
    $('moreOptions').style.display = ""; 
    } else { 
    $('moreOptions').style.display = "none"; 
    } 
} 

在我的CF文件:

<input name="advanced" type="checkbox" value="" id="advanced" onclick="showDiv('');"> 


<div id="moreOptions" style="display:none;" class="moreOptions"> 
<table> 
drop down boxes 
</table> 
</div> 

該複選框是在不同的表,這是否物?

任何人都知道爲什麼這不起作用?

回答

1

,你的代碼應該是:

function showDiv(advancedVal) 
{ 
    if(advancedVal) { 
    document.getElementById('moreOptions').style.display = ""; 
    } else { 
    document.getElementById('moreOptions').style.display = "none"; 
    } 
} 

<input name="advanced" type="checkbox" value="" id="advanced" onchange="showDiv(this.checked)"> 

下面是一個例子:http://jsfiddle.net/XN8aK/1/

+0

這可行,但由於某種原因,當我再次取消選中該框時,高級選項仍然出現。 – Alias

+1

是的,那是因爲你的複選框有一個空值。我已經更新了代碼。 –

2

你使用jQuery嗎?然後,它應該是:

$('moreOptions').style.display = ""應該$('#moreOptions').show()

$('moreOptions')[0].style.display = ""

UPD

我想這是你想要什麼:

function showDiv(obj) { 
    var more = document.getElementById('moreOptions'); 
    more.style.display = obj.checked ? "" : "none"; 
}​ 

並改變你的標記:

<input name="advanced" type="checkbox" value="" id="advanced" onchange="showDiv(this)"> 

觀看演示如果你不使用jQuery http://jsfiddle.net/dfsq/Kexbu/2/

+0

也許他正在使用Mootools,問題應該指定。 –

+0

沒錯,但如果這是Mootools,那麼它會工作。 – dfsq

+0

我不認爲我使用jQuery,只是Javascript(小白)。我旁邊的類似功能使用的語法與我發佈和使用的語法相同,我查看了它們,但似乎無法找到我要出錯的地方。 – Alias

1

變化$('moreOptions')$('#moreOptions')