Jquery表单选择选项在提交后不保存


Jquery form select otion doesn't save after submit

我使用jquery脚本组合选择下拉选项。脚本工作得很好,除了在提交所选选项后不保存为选择之外,它默认返回到每个下拉列表的第一个值。

我需要一些帮助。是否有一个解决方案,我可以添加到我现有的一个帖子或其他替代方案。

我使用两个脚本,一个动态地选择双滴(一个滴依赖于另一个),另一个脚本列出所有的选项和它们的子选项。

下面是第一个脚本的代码:
(function($) {
    $.fn.doubleSelect = function(doubleid, values, options) {
        options = $.extend({
            preselectFirst: null,
            preselectSecond: null,
            emptyOption: false,
            emptyKey: -1,
            emptyValue: 'Choose...'
        },
        options || {});
        var $first = this;
        var $secondid = "#" + doubleid;
        var $second = $($secondid);
        var setValue = function(value) {
            $second.val(value).change();
        };
        /** Helper Function to remove childs from second */
        var removeValues = function() {
            $($secondid + " option").remove();
        };
        /** OnChange Handler */
        $(this).change(function() {
            removeValues();
            var $current = this.options[this.selectedIndex].value;
            if ($current !== '') {
                $.each(values,
                function(k, v) {
                    var bestk;
                    if ($current == v.key) {
                        $.each(v.values,
                        function(k, v2) {
                            if (!bestk && (v.defaultvalue !== null && v2 == v.defaultvalue)) {
                                bestk = k;
                            }
                            if (options.preselectSecond !== null && v2 == options.preselectSecond) {
                                bestk = k;
                            }
                        });
                        $.each(v.values,
                        function(k, v2) {
                          var o = $("<option>").html(k).attr('value', v2);
                          if (options.preselectSecond) {
                            $.each(options.preselectSecond,
                              function(index, selected) {
                                if (v2 == selected) {
                                    o.html(k).attr("selected", "selected");
                                }
                              }
                            );
                          }
                          if (k === bestk) { o.html(k).attr("selected", "selected"); }
                          o.appendTo($second);
                        });
                    }
                });
            } else {
                setValue(options.emptyValue);
            }
        });
        return this.each(function() {
            //remove all current items in select boxes
            $first.children().remove();
            $second.children().remove();
            // Handle the empty option param
            if (options.emptyOption) {
                var oe = $("<option>").html(options.emptyValue).attr('value', options.emptyKey);
                oe.appendTo($first);
            }
            // add all options to first select box
            $.each(values,
            function(k, v) {
                var of = $("<option>").html(k).attr('value', v.key);
                if (options.preselectFirst !== null && v.key == options.preselectFirst) {
                    of.html(k).attr("selected", "selected");
                }
                of.appendTo($first);
            });
            if (options.preselectFirst === null) {
                var $current = this.options[this.selectedIndex].value;
                if ($current !== '') {
                    $.each(values,
                    function(k, v) {
                        var bestk;
                        if ($current == v.key) {
                            $.each(v.values,
                            function(k, v2) {
                                if (!bestk && (v.defaultvalue !== null && v2 == v.defaultvalue)) {
                                    bestk = k;
                                }
                                if (options.preselectSecond !== null && v2 == options.preselectSecond) {
                                    bestk = k;
                                }
                            });
                            $.each(v.values,
                            function(k, v2) {
                                var o = $("<option>").html(k).attr('value', v2);
                                if (k === bestk) { o.html(k).attr("selected", "selected"); }
                                o.appendTo($second);
                            });
                        }
                    });
                } else {
                    setValue(options.emptyValue);
                }
            } else {
                $first.change();
            }
        });
    };
})(jQuery); 
下面是第二个脚本的示例代码:
$(document).ready(function()
 {
    var selectoptions = {
            "Option 1": {
                 "key" : "Option 1",
                 "defaultvalue" : 1,
                 "values" : {
                    "sub-option 1": "sub-option 1",
                    "sub-option 2": "sub-option 2",
                    "sub-option 3": "sub-option 3"
          }
    },
"Option 2": {
                 "key" : "Option 1",
                 "defaultvalue" : 1,
                 "values" : {
                    "sub-option 1": "sub-option 1",
                    "sub-option 2": "sub-option 2",
                    "sub-option 3": "sub-option 3"
          }
    },
"Option 3": {
                 "key" : "Option 1",
                 "defaultvalue" : 1,
                 "values" : {
                    "sub-option 1": "sub-option 1",
                    "sub-option 2": "sub-option 2",
                    "sub-option 3": "sub-option 3"
          }
    },
 };
        $('#first').doubleSelect('second', selectoptions);
 });
我使用的示例表单html是:
<form action="" method="post" enctype="multipart/form-data"> 
<input type="hidden" name="action" value="1" />
<fieldset> 
<select type="text" name="address[state]" id="first" value="<?php // echo $_POST["address"]["state"]; ?>" class="short" tabindex="15"><option value="">--</option></select>
<select type="text" name="address[city]" id="second" value="<?php // echo $_POST["address"]["city"]; ?>" class="short" tabindex="16"><option value="">--</option></select>
</fieldset>                        
<input type="submit" name="submit" id="submit" class="button grey" tabindex="15" value="<?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount33']) ?>" />
</form>

谢谢你对这个问题的帮助。很感激。

可能是因为您的表单没有action吗?