1

我正在尝试使用一个下拉菜单,它作为 2 个值是/否来更改是否显示字段。我仍然希望元素存在,只是不可见。

我正在使用 Razor 和 MVC3 来呈现页面。

所以我尝试了以下代码:

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

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

4

3 回答 3

3
$("DiscountOn")

没有正确选择元素。如果您希望选择元素的 ID,那么您需要执行以下操作:

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

或者

$("#DiscountOn") // jQuery

你的另一个问题是你如何获得价值。你要么需要这样做

.value // Pure JS

或者

.val() // jQuery

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

于 2012-12-10T10:01:48.540 回答
1
$(function () {
    $("#DiscountOn").change(function () {
        if ($(this).val() == '0') {
            $('#DiscountPercentage').fadeOut('fast');
        }
        else {
            $('#DiscountPercentage').fadeIn('fast');
        }
    });
});

对于增值,如果您可以在页面加载时使其显示或消失,具体取决于下拉菜单中设置的选项,那就太好了。

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

于 2012-12-10T10:01:18.550 回答
0

问题出在选择器上

如果DiscountOnDiscountPercentage是 ID 或元素。#如果他们是班级,那么在前面加上前缀.

$(function () {
    $("#DiscountOn").change(function () {
        if ($("#DiscountOn").val() === 0) {
            $("#DiscountPercentage").fadeOut('fast');
        }
        else {
            $("#DiscountPercentage").fadeIn('fast');
        }
    });
});
于 2012-12-10T10:00:38.150 回答