javascript onchange和显示/隐藏表内容的帮助

javascript onchange和显示/隐藏表内容的帮助,javascript,Javascript,我想根据选择的select值显示/隐藏td标记中的div。我无法显示标签文本,只能显示文本框。谁能帮我一下吗 这是到目前为止我的代码 <script> function toggleOther(chosen){ if (chosen == 'oth') { document.myform.other.style.visibility = 'visible'; } else { document.myform.other.style.visibility = 'hidden';

我想根据选择的select值显示/隐藏td标记中的div。我无法显示标签文本,只能显示文本框。谁能帮我一下吗

这是到目前为止我的代码

<script>
function toggleOther(chosen){
if (chosen == 'oth') {
  document.myform.other.style.visibility = 'visible';
} else {
  document.myform.other.style.visibility = 'hidden';
  document.myform.other.value = '';
}
}
</script>
<form name="myform">
  <tr>
    <td>
      <select name="values" size="1" onchange="toggleOther( document.myform.values.options[ document.myform.values.selectedIndex ].value );">
      <option value=" " selected="selected"> </option>
      <option value="name">Name</option>
      <option value="age">Age</option>
      <option value="oth">Other</option>
      </select>
    </td>
    <td>
      <div style="visibility:hidden">
        <label>adfdasfgsfg</label>
        <input type="text" name="other" value="" size="25" />
      </div>
    </td>
  </tr>
</form>

功能切换其他(已选择){
如果(已选择=='oth'){
document.myform.other.style.visibility='visible';
}否则{
document.myform.other.style.visibility='hidden';
document.myform.other.value='';
}
}
名称
年龄
其他
adfdasfgsfg

问题在于您已将包含的
的可见性设置为
隐藏的
,但javascript仅显示您的输入。(
document.myform.other.style.visibility

要使其正常工作,只需给您的
一个
id
,然后显示和隐藏该id即可:

// ... snip ...
function toggleOther(chosen){
var piece_to_hide = document.getElementById("otherValues");
if (chosen == 'oth') {
  piece_to_hide.style.display = 'block';
} else {
  piece_to_hide.style.display = 'none';
  document.myform.other.value = '';
}
}
// ... snip ...
  <div id="otherValues" style="display:none">
     <label>adfdasfgsfg</label>
     <input type="text" name="other" value="" size="25" />
  </div>
/。。。剪
功能切换其他(已选择){
var piece_to_hide=document.getElementById(“其他值”);
如果(已选择=='oth'){
工件到隐藏.样式.显示='块';
}否则{
工件到工件hide.style.display='none';
document.myform.other.value='';
}
}
// ... 剪
adfdasfgsfg

给元素一个id:

<div id="Other" style="visibility:hidden">
编辑: 以下是经过测试和运行的代码及其更改:

<script>
function toggleOther(chosen){
if (chosen == 'oth') {
  document.getElementById('Other').style.visibility = 'visible';
} else {
  document.getElementById('Other').style.visibility = 'hidden';
  document.myform.other.value = '';
}
}
</script>
<form name="myform">
  <tr>
    <td>
      <select name="values" size="1" onchange="toggleOther( document.myform.values.options[ 

document.myform.values.selectedIndex ].value );">
      <option value=" " selected="selected"> </option>
      <option value="name">Name</option>
      <option value="age">Age</option>
      <option value="oth">Other</option>
      </select>
    </td>
    <td>
      <div id="Other" style="visibility:hidden">
        <label>adfdasfgsfg</label>
        <input type="text" name="other" value="" size="25" />
      </div>
    </td>
  </tr>
</form>

功能切换其他(已选择){
如果(已选择=='oth'){
document.getElementById('Other').style.visibility='visible';
}否则{
document.getElementById('Other').style.visibility='hidden';
document.myform.other.value='';
}
}
名称
年龄
其他
adfdasfgsfg

嗨,肖恩,谢谢你的帮助。我根本不懂javascript。我尝试了你修改过的代码,但仍然不起作用。Smacks head@jim--抱歉,我假设页面已经加载了--我已经移动了
文档。getElementById
在函数内部调用;现在应该可以用了。谢谢肖恩,我试试。谢谢,古芙。我可以用你的代码隐藏和显示文本框。唯一的问题是,在显示div之后,文本不会随文本框一起消失。我需要的是文本框以及显示和隐藏的文本。@jim:我试着用它时,效果很好。我在上面添加了完整的编辑代码。
<script>
function toggleOther(chosen){
if (chosen == 'oth') {
  document.getElementById('Other').style.visibility = 'visible';
} else {
  document.getElementById('Other').style.visibility = 'hidden';
  document.myform.other.value = '';
}
}
</script>
<form name="myform">
  <tr>
    <td>
      <select name="values" size="1" onchange="toggleOther( document.myform.values.options[ 

document.myform.values.selectedIndex ].value );">
      <option value=" " selected="selected"> </option>
      <option value="name">Name</option>
      <option value="age">Age</option>
      <option value="oth">Other</option>
      </select>
    </td>
    <td>
      <div id="Other" style="visibility:hidden">
        <label>adfdasfgsfg</label>
        <input type="text" name="other" value="" size="25" />
      </div>
    </td>
  </tr>
</form>