0

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

当为 State 下拉列表选择值 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()功能。

4

2 回答 2

0

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

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

于 2013-03-05T17:16:31.097 回答
0

试试这个:

<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'});
    }
于 2013-03-05T17:25:12.497 回答