javascript - 如何根据选择值显示表单输入字段?

标签 javascript jquery html jsp

我知道这很简单,我需要在 Google 中搜索。我尽力而为,但找不到更好的解决方案。我有一个表单字段,它需要一些输入和一个选择字段,它有一些值。它还具有“其他”值。

我想要的是:

如果用户选择“其他”选项,则应显示一个文本字段以指定“其他”。当用户选择另一个选项(而不是“其他”)时,我想再次隐藏它。我如何使用 JQuery 执行该操作?

这是我的 JSP 代码

<label for="db">Choose type</label>
<select name="dbType" id=dbType">
   <option>Choose Database Type</option>
   <option value="oracle">Oracle</option>
   <option value="mssql">MS SQL</option>
   <option value="mysql">MySQL</option>
   <option value="other">Other</option>
</select>

<div id="otherType" style="display:none;">
  <label for="specify">Specify</label>
  <input type="text" name="specify" placeholder="Specify Databse Type"/>
</div>

现在我只想在用户选择其他时显示 DIV 标记**(id="otherType")**。 我想试试 JQuery。这是我试过的代码

<script type="text/javascript"
    src="jquery-ui-1.10.0/tests/jquery-1.9.0.js"></script>
<script src="jquery-ui-1.10.0/ui/jquery-ui.js"></script>
<script>    
$('#dbType').change(function(){

   selection = $('this').value();
   switch(selection)
   {
       case 'other':
           $('#otherType').show();
           break;
       case 'default':
           $('#otherType').hide();
           break;
   }
});
</script>

但是我无法得到这个。我应该怎么办?谢谢

最佳答案

您的代码存在一些问题:

  1. 您在选择元素的 ID 上缺少一个左引号,因此:<select name="dbType" id=dbType">

应该是<select name="dbType" id="dbType">

  1. $('this')应该是 $(this) : 括号内不需要引号。

  2. 当您想要检索选项的值时,请使用 .val() 而不是 .value()

  3. 当你初始化“selection”时,在它前面加上一个 var,除非你已经在函数的开头完成了它

试试这个:

   $('#dbType').on('change',function(){
        if( $(this).val()==="other"){
        $("#otherType").show()
        }
        else{
        $("#otherType").hide()
        }
    });

http://jsfiddle.net/ks6cv/

UPDATE 用于开关:

$('#dbType').on('change',function(){
     var selection = $(this).val();
    switch(selection){
    case "other":
    $("#otherType").show()
   break;
    default:
    $("#otherType").hide()
    }
});

更新,包含 jQuery 和 jQuery-UI 的链接:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>‌​

关于javascript - 如何根据选择值显示表单输入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15566999/

相关文章:

javascript - 递归添加对象属性

javascript - 如何使用 Javascript 在 tbody 中的最后一个 tr 上添加行

php - Jquery load() 一个包含 JavaScript 的 html 文件

javascript - 如何使ajax参数动态化?

javascript - 我公司的 UI 设计师和营销人员不想要 "awkward line breaks"。 CSS 或 JS 怎么办?

JavaScript 从文件中加载innerHTML

javascript - Chakra UI 的骨架组件在 Flexbox 属性下不起作用

jquery - 我需要 CSS 中的玻璃形状

javascript - 使用 jQuery/Ajax 通过下拉菜单过滤 PHP SELECT 查询

javascript - 如何根据单击的按钮发送 id 参数?