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>

复选框在另一个表中,这有关系吗?

任何人都知道为什么这不起作用?

4

3 回答 3

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)">

见演示http://jsfiddle.net/dfsq/Kexbu/2/

于 2012-10-24T10:34:34.683 回答
1

更改$('moreOptions')$('#moreOptions')

于 2012-10-24T10:35:35.267 回答
1

如果你不使用 jQuery,你的代码应该是:

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/

于 2012-10-24T10:43:25.230 回答