2012-12-10 35 views
1

我想使用一个下拉,其中2个值是/否更改是否显示一个字段。我仍然希望存在的元素不可见。使用选择更改淡出或淡出另一个字段

我使用Razor和MVC3来渲染页面。

因此,我曾尝试以下的代码:

$(function() { 
    $("DiscountOn").change(function() { 
     if ($("DiscountOn").Value == 0) { 
      $("DiscountPercentage").fadeOut('fast'); 
     } 
     else { 
      $("DiscountPercentage").fadeIn('fast'); 
     } 
    }); 
}); 

DiscountOn是具有0或1值,文本没有或yes分别下拉。当DiscountOn转为0时,我希望它使DiscountPercentage消失,并在DiscountOn转为1时重新出现。对于增加值,如果可以在页面加载时显示或消失,取决于在下拉菜单中设置哪个选项会很好。

回答

3
$("DiscountOn") 

没有正确选择元素。如果您要选择的元素的ID,那么你需要做两种:

document.getElementById("DiscountOn") // Pure JS 

$("#DiscountOn") // jQuery 

你的另一个问题是,你是如何得到的值。你要么需要做到这一点

.value // Pure JS 

.val() // jQuery 

记住,JS是区分大小写的!

+0

非常好,非常感谢您的帮助。 –

+0

我的荣幸! :) –

+0

有一个问题,它仍然不起作用,我已经提醒了一下,看看它的价值是什么,但是警报甚至没有显示出来。所有的ID都是正确的。 –

0

的问题是与选

如果DiscountOnDiscountPercentage是ID或该元素。与#前缀,如果他们是一流的,然后用.

$(function() { 
    $("#DiscountOn").change(function() { 
     if ($("#DiscountOn").val() === 0) { 
      $("#DiscountPercentage").fadeOut('fast'); 
     } 
     else { 
      $("#DiscountPercentage").fadeIn('fast'); 
     } 
    }); 
}); 
+0

$(“#DiscountOn”)。Value == 0,rly? – sasjaq

+0

嗯,我没有注意到他是否也犯了这个错误。如果你阅读我的评论,我只提到了一个问题并解决了这个问题。 –

1
$(function() { 
    $("#DiscountOn").change(function() { 
     if ($(this).val() == '0') { 
      $('#DiscountPercentage').fadeOut('fast'); 
     } 
     else { 
      $('#DiscountPercentage').fadeIn('fast'); 
     } 
    }); 
}); 

而对于增值,如果你可以把它出现或或取决于哪个选项在设置时消失 在页面加载下拉 这将是优秀的。

理想情况下,这应该在服务器端完成,而不是使用任何JavaScript。您已经知道下拉列表的选定值,因此您可以动态地在DiscountPercentage元素周围添加一些CSS类来显示/隐藏它。

相关问题