2012-03-04 75 views
-1

我想打开一个选择框显示一个输入框,当某些选项被选中。选择框打开输入框jQuery

这里是我的代码:

$("document").ready(function() { 
    $('input.other').hide(); 
    $('#amount').change(function() { 
     // var val = $(this).find('option:selected').text(); 
     //alert(val); 
     var selectedValue = $(this).find(":selected").val(); 
     //alert(selectedValue); 
     if($(this).selectedValue == '25.00') { 
      // only if the radio button has a dob-field 
      $('input.other').show();// show only the following first 
     } 
    }); 
}); 
+0

细说您的问题 – 2012-03-04 17:28:19

+0

有在你的代码中的许多错误。它是'$(document).ready(function(){})'。它不是'if($(this).selectedValue == '25 .00')'but if(selectedValue == '25 .00')'...和'$('input.other')。show()'just否定你在第二行做的事。 – 2012-03-04 17:33:11

+0

你可以尝试改写第一句话吗?目前的形式没有多大意义。 – 2012-03-04 18:16:15

回答

2

您可以针对内选定option#amount元素直接使用下面的选择器,并找到它的值并在if语句内进行比较。

与问题的代码的问题是$(this).selectedValue,其中$(this)指的是#amount而不是optionselectedValue是一个变量,应该直接使用,但它是不是真的有必要在这里使用一个变量,它完全可读,并且可以直接处理if语句中的所有内容。

$('input.other').hide(); 
$('#amount').on('change', function(){ 
    if($(':selected', this).val() == '25.00') { 
     $('input.other').show(); 
    } 
}); 
+0

您可能想要添加一些解释他的错误以及您的代码的作用。这样你的答案也可以用于未来的开发者。 – 2012-03-04 18:07:20

+0

@OctavianDamiean - 开心:-) – adeneo 2012-03-04 18:23:37

+0

绝对如此。谢谢! – 2012-03-04 18:27:18

1

使用selectedValue检查不$(this).selectedValue

if(selectedValue == '25.00') { // only if the radio button has a dob-field 
$('input.other').show();// show only the following first 
} 

下面是一个完整的工作片段

$(document).ready(function() { 
    $('input.other').hide(); 
     var selectedValue = $(this).find(":selected").val(); 
     if(selectedValue == '25.00') { 
      // only if the radio button has a dob-field 
      $('input.other').show();// show only the following first 
     } 
    }); 
}); 
+0

当文档加载其他类的输入框时将显示您的代码。 – user1235905 2012-03-04 17:50:49

+0

@ user1235905,那不是你的代码。我不想超出问题的范围 – Starx 2012-03-04 23:40:38

1

您可以在SELECT直接使用.val()不是选择:selectedOPTION的(假设#amountSELECT元素):

var input = $('input.other').hide(); 
$('#amount').change(function() { 
    if($(this).val() == '25.00') { 
     input.show(); 
    } 
}); 

演示:http://jsfiddle.net/bj6MJ/

加了:假设如果用户选择了“25”以外的其他内容,则需要再次隐藏它.00" ,你可以使用toggle()

var input = $('input.other').hide(); 
$('#amount').change(function() { 
    input.toggle($(this).val() == '25.00'); 
}); 

演示:http://jsfiddle.net/bj6MJ/1/