当父下拉菜单设置为默认值

时间:2015-05-25 11:03:21

标签: jquery asp.net-mvc razor

我有一个dropdownlistfor和下面的代码按预期工作(和StateId类似的块):

$('#CountryId').change(function () {
        $.getJSON('@Url.Action("StateList", "Manage")', {id: $('#CountryId').val()}, function (data) {
            var items = '<option value="">Select a State</option>';
            $.each(data, function (i, state) {
                items += "<option value='" + state.Value + "'>" + state.Text + "</option>";
            });
            $('#StateId').html(items);
            $('#CityId').html('<option value="">Select a City2</option>');
        });
    });

但是,如果将国家/地区设置为默认值(之前已设置为其他内容),则不会触发更改并且不会发生任何事情(我理解为什么......我不想要/需要州选项如果发生这种情况)。因此,我最终选择了一个州和城市,没有国家(不好)。我想要完成的是当我的CountryId下拉列表设置为以下内容时:

<option value="">Select a Country</option>

然后应该发生以下情况:

$('#StateId').html('<option value="">Select a State</option>');
$('#CityId').html('<option value="">Select a City</option>');

我只是不知道如何设置有关CountryId的第一部分。我该怎么做呢?我和$('#CountryId').val以及其他几个没有运气的人搞乱了。

此外,似乎如果采用这种方法,如果它们已经是默认值,它将基本上写入State和City的默认值(例如,当用户之前没有设置值时报名表)?那有关系吗?还有更好的方法吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您应该绑定change事件国家/地区,然后检查值,并使用.val()更改statecountry的下拉值。

$("#CountryId").on('click', function () {
    if($(this).val() == ''){
        $('#StateId').val('');
        $('#CityId').val('');
    }
});

    $(document).ready(function() {
      setTimeout(function() {
        $('select').val('')
      }, 2000)
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
  <option value="">Select a State</option>
  <option value="Whatever" selected>Whatever</option>
</select>