0

我有一个包含项目列表的下拉列表,第一个项目的值为 0,其他项目的值大于 0。

以下代码附加到更改事件:

<script type="text/javascript">
    $("#SearchRegionId").change(function (e) {
        var select = $("#SearchKommuneId");
        select.empty();
        if ($("#SearchRegionId").val() != 0);
        {
            $.ajax({
                url: '/Kommune/getKommunerIRegion/',
                type: 'POST',
                data: { RegionId: $("#SearchRegionId").val() },
                dataType: 'json',
                success: function (data) {
                    for (i in data) {
                        select.append($('<option value="' + data[i].KommuneId + '">' + data[i].KommuneNavn + '</option>'));
                    }
                }
            });
        }
    });
</script>

我的问题是,当我测试 $("#SearchRegionId").val() != 0 时,即使选择的值为 0,它也始终为真。我已在显示值的警报框中显示了该值0,但有些东西告诉我它并不是真正的 0。

4

2 回答 2

1

你有一个;在末尾if

if ($("#SearchRegionId").val() != 0)

;结尾表示 if 条件在那里结束,之后的;代码块将被执行,而与条件的值无关。

<script type="text/javascript">
    $("#SearchRegionId").change(function (e) {
        var select = $("#SearchKommuneId");
        select.empty();
        if ($("#SearchRegionId").val() != 0)
        {
            $.ajax({
                url: '/Kommune/getKommunerIRegion/',
                type: 'POST',
                data: { RegionId: $("#SearchRegionId").val() },
                dataType: 'json',
                success: function (data) {
                    for (i in data) {
                        select.append($('<option value="' + data[i].KommuneId + '">' + data[i].KommuneNavn + '</option>'));
                    }
                }
            });
        }
    });
</script>

演示:问题
演示:解决方案

于 2013-04-08T07:28:35.240 回答
0

你为什么写

select.empty();

分配值后,然后检查它.....

它使

var select;

变得空虚,不是吗?我是这么认为的,和roXon一样

于 2013-04-08T07:27:12.993 回答