【问题标题】:Unable to Set Dropdown List in javascript无法在 javascript 中设置下拉列表
【发布时间】:2014-08-07 22:57:54
【问题描述】:

我有一个页面,允许用户从下拉列表中选择州、城市和部门。每个下拉列表都是根据前一个下拉列表的选定值填充的。当用户做出选择时,我将值存储在 cookie 中。然后,我在页面加载/重新加载时检查 cookie。页面重新加载,值看起来不错;但是,我无法在下拉框中设置值。我尝试对值进行硬编码,但它仍然不起作用。我错过了什么吗?

   $(function () {
        var checkState = checkCookie("SelectedState"); // get the state index that was saved in the cookie.
        var cityDropdown = $('#CityName');
        if (checkState != "" && checkState != null) {
            var checkCityCookie = checkCookie("cityName"); // get the city index value
            var newCity = checkCityCookie.replace("=", " ")
            if (newCity == "") {
                getCity(checkState); //populate the city drop down
            }
            if (newCity  != null && newCity != "") {
                $('#CityName').val(1); //Hard code value here and still not working.
                var checkDepartment = checkCookie("SelectedDepartment");
                if (checkDepartment != null && checkDepartment != "") {
                    getDepartment(newCity);
                }
            }
        }
    })

2014 年 8 月 7 日更新:

//This is a sample of the html file that is generated, 
so there is a value 1. $('#CityName').val(1);

<select name="CityName" id="CityName" onchange="changeCityName()"><option value="">Choose School</option>
<option value="1">Miami</option>
<option value="2">West Palm</option>
</select>

【问题讨论】:

  • 基本调试时间。控制台中的任何错误?在函数的开头使用console.log() 在您的每个if..else 语句和console.log('#CityName'); 中添加一些日志记录到您的代码中,以查看您是否真的针对一个对象。现在再次检查控制台,看看您预期的日志是否正在发生。也可以尝试$('#CityName').val('1');,因为该值是字符串而不是整数。

标签: javascript asp.net asp.net-mvc-3


【解决方案1】:

如果你有这样的html:

<select id="ddl-my-cities">
    <option value="1">City 1</option>
    <option value="2">City 2</option>
    <option value="3">City 3</option>
    <option value="4">City 4</option>
</select>

当前的 jQuery 代码应该可以工作:

$("#ddl-my-cities").val(3);

请检查您的 html。如果它不适合您,请查看控制台,可能您有错误。

如果您在控制台中没有错误,请提供您的 html 或 razor 代码,我将编辑我的答案。

【讨论】:

  • 仅使用一段单独的代码很难弄清楚会发生什么......无论如何,1)为什么你创建而我不使用cityDropdown变量?,2)会发生什么在getCity(checkState) 方法中? 3) 你在if (newCity != null &amp;&amp; newCity != "") {} 里面放了断点吗?我认为getCity(checkState)(newCity != null &amp;&amp; newCity != "") 内部发生了问题,等于false
  • 我决定在服务器端而不是客户端进行验证。我使用了一个 sessionwrapper 来保存搜索框的值,并且每次重新加载页面时我都会检查该值。它现在可以解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-23
  • 1970-01-01
相关资源
最近更新 更多