0
$("#county_id").change(function() {
    $("#vice_county_id").html("<option value=\"\">-- Select One --</option>");
    var co_id = $(this).val();
    if(co_id != 0) {
        $.getJSON('./php/includes/vice_county_web_service.php?co_id=' + co_id,function(data) {   
            $.each(data, function() {
                $("#vice_county_id").append($("<option></option>").val(this['vice_county_id']).html(this['vice_county_name']));
            });
        });
    }
});

嗨,伙计们,我有上面的代码,用于根据另一个下拉列表中的选择加载选项。它工作得很好,但为了完成这个,我试图让它变得粘稠。即,如果表格已发布并且县已经选择了一个值,那么副县将预加载相关选项。基本上在加载时触发 .change 功能。我已经尝试过 .load 和 triggerhandler 功能,但它似乎不起作用。有任何想法吗??谢谢。

4

2 回答 2

0

据我所知,为了预填充表单,您需要使用服务器端代码。您说用户在某处发布了他的代码,但您没有说明如何处理表单发布。

我在我工作的地方使用 ASP.net,所以我会为每个下拉列表的值提供一个服务器端属性。然后,当页面呈现时,我将属性的值打印到我的 JavaScript 代码中。您需要让您的 JavaScript 代码将该属性添加selected='selected'到您希望在页面加载时选择的选项。

更新: 听起来您是在说您选择下拉菜单 1,然后自动填充下拉菜单 2 的选项。听起来问题是在回发后无法保留下拉 2,因为它的选项是在页面加载填充的(通过 AJAX)。我相信解决问题的方法是在通过 AJAX 成功获取下拉选项时运行的代码中设置 selected 属性。

        $.each(data, function() {
            $("#vice_county_id").append($("<option></option>").val(this['vice_county_id']).html(this['vice_county_name']));
            //Check if the option being added was previously selected.
        });
于 2012-05-14T15:16:02.450 回答
0

使用 Cookie 存储下拉更改事件的值。

当表单加载时,使用相同的 cookie 来检索值并向用户显示他选择的内容。

但不建议为此任务维护 cookie。

如果它是 JSP 页面,您可以使用 JSTL。

Cookie 创建指南 http://www.quirksmode.org/js/cookies.html

于 2012-08-07T14:11:33.307 回答