0

我试图查看选择菜单中的特殊选项的值是否等于 1,然后隐藏另一个对象。我整天都在尝试,但无法弄清楚(可能是因为我是 jquery 的初学者)

我有一个从数据库填充的选择菜单。如果 id="1" 的选项具有“selected=selected”,那么我希望在加载页面时隐藏另一个 div。

这是我到目前为止得到的:

<select>
<option id="3">test1</option>
<option id="1" selected="selected">test2</option>
<option id="2">test3</option>
</select>
<div id="hide">Hide me</div>


$("#1 option:selected").ready(function () {
   $("#hide").hide();
});

任何帮助将不胜感激。谢谢../安德烈亚斯

4

4 回答 4

10

恐怕您的代码有一些问题:

  1. 您在错误的对象上使用了事件 -.ready()应该应用于文档
  2. ID 不能以数字开头
  3. 您应该使用 value 属性而不是 id 属性。
  4. 你最好用.val()它来获得价值
  5. 你应该给选择一个id,以防你在页面上添加另一个。

把它们放在一起:

<select id="foo">
<option value="3">test1</option>
<option value="1" selected="selected">test2</option>
<option value="2">test3</option>
</select>
<div id="hide">Hide me</div>


$(document).ready(function () {
   if ($('#foo').val() != 1)
       $("#hide").hide();
});

如果您想在选择更改时动态执行此操作,您可以这样做:

$('#foo').change(function () {
   if ($(this).val() != 1)
       $("#hide").hide();
   else
       $("#hide").show();
});
于 2009-10-20T12:43:35.050 回答
0

首先你的身份证是无效的。它不应该以数字开头。为选择元素提供一个 id 并找到所选元素并将其值检查为 1 并显示/隐藏适当的 div。

于 2009-10-20T12:40:51.670 回答
0
// assume your select has id="mySelect"
$(function() {
    $('#mySelect').change(function() {
        var value = $(this).val();
        if (value == '1') {
            $('#hide').hide();
        } else {
            $('#hide').show();
        }
        return false;
    });
});
于 2009-10-20T12:43:32.227 回答
0
$(function() {

$('select').change(function(){
  if ($("option:selected",this).attr('id') == 1 ){
   $("#hide").hide();
  }
});

});

将使用您所拥有的,但与其他人提出的观点相同-

  • HTML 规范声明你不应该有以数字开头的 id
  • 使用选项的 value 属性而不是 id
  • 您需要将代码放在一个函数中,该函数将在<select>引发change 事件时执行
  • <select>一个 id 来唯一标识它。
于 2009-10-20T12:44:51.977 回答