【问题标题】:Show a textbox on drop down select在下拉选择中显示文本框
【发布时间】:2013-03-05 17:12:24
【问题描述】:

我尝试过 onchange 和 onclick 事件,但我都遇到了问题。执行我的代码时,Firebug 告诉我我的 showTextBox 函数没有定义。

当状态下拉列表选择值 1 时,我需要显示包含文本框的 <div>。我在选项标签中移动了 onclick 属性并尝试了 onchange 属性,但仍然得到 showTextBox() 未在 Firebug 中定义。

<select id="AddrType" onclick="showTextBox();"
        height="30px" style="width: 90px"> 
  <option value="10"></option>
  <option value="0">City</option>
  <option value="1">State</option>
  <option value="2">Zip</option>
</select>   

 <br />

 <div id="stateText" style="visibility: hidden">
   State <input type="text" id="STATE"/>
 </div>

这是触发 onclick 或 onchange 事件时调用的函数:

function showTextBox() {
    console.log("in check Drop down");
    if ($('#AddrType').val() == 'State') {
        $('#stateText').style.visibility = 'visible';
    }
    console.log($('#AddrType').val());

对此有任何帮助。我用谷歌搜索了它,但我似乎找不到有用的东西。我无法使用document.getElementById() 函数。

【问题讨论】:

  • 我假设在你的代码中你有一个用于 showTextBox 的结束 }?

标签: javascript html drop-down-menu onclick onchange


【解决方案1】:

试试这个:

<script type='text/javascript'>

  $(document).ready(function(){
       $('#AddrType').change(function(){
           if ($(this).val() == '1') {
               $('#stateText').css({'display':'block'});           
           }
        });
  });


</script>

并将您的选择更新为:

   <select id="AddrType" height="30px" style="width: 90px"> 
     <option value="10"></option>
     <option value="0">City</option>
     <option value="1">State</option>
     <option value="2">Zip</option>
  </select>   

另外,这工作得很好。

   <select id="AddrType"  onchange="showTextBox()" height="30px" style="width: 90px"> 
      <option value="10"></option>
      <option value="0">City</option>
      <option value="1">State</option>
      <option value="2">Zip</option>
  </select>

showTextBox() 在哪里:

   function showTextBox(){
        if ($('#AddrType').val() == '1') {
                   $('#stateText').css({'visibility':'visible'});
    }

【讨论】:

  • 他们没有 onclick 或 onchange 事件在此更改它会提醒值是什么..?
  • 是的..因为在运行时下拉的 m 绑定更改事件。我已经更新了我的答案。它完全符合您在代码中尝试执行的操作。
  • 这更接近于它在更改功能中的作用。我得到样式是未定义的错误。 style="visibility: hidden" 在 div 上有效吗?
  • 天哪,jquery 对象没有这样的“风格”。我已经更新了我的答案。立即查看
  • 由于某种原因它不喜欢 onchange 属性,它告诉我函数未定义,但它显然在我的 document.ready 中。我让它与您的第一个建议一起使用,但使用 .css({'visibility':'visible'});感谢您的帮助!
【解决方案2】:

您的 val() 可能返回 "1" 而不是您正在检查的 "State"

不仅在 jQuery 上,而且当您将表单数据发布到服务器时,AddrType 的值将是所选 option 元素的 value 属性(在您的情况下为“City / State / Zip”只是值的“标题”)。

【讨论】:

  • 是的,我明白,但出于某种原因,Firebug 告诉我该函数未定义。
  • 在选择onclick="showTextBox();"当在 Firebug 中调用它时,它说 showTextbox 未定义。
  • 可能是函数定义上方的代码中某处存在语法错误,导致 FireFox 无法解析您的函数。尝试在 FireBug 控制台输入showTextBox 看是否定义。
猜你喜欢
  • 2021-07-01
  • 1970-01-01
  • 2018-12-29
  • 2015-03-08
  • 1970-01-01
  • 2019-05-15
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
相关资源
最近更新 更多