jQuery 實作的多選框連動外掛程式 複製程式碼 程式碼如下: 程式碼如下: $(_event_src_).autoSelect(_reload_, reload_url); // 前台用get方法傳輸標籤的屬性"name"和選取的屬性"value" // 後台用json格式傳送資料// 格式: { value: 的屬性"value", text: 的顯示文字} (function($) { $.fn.extend({ autoSelect: function(dest, url) { return this.each(function() { $.SelectChange($(this), $(dest), url); }); }, }); // 重設複選框$.SelectReset = function(target) { if (target != null) { $ .SelectReset(target.data("nextSelect")); target.empty(); target.append(target.data("defaultOpt")); } }; }; }; >// 載入複選框$.SelectLoad = function(target, data) { $.each(data, function(index, content) { var option = $("") .attr("value", content.value).text(content.text); target.append(option); }); } ; // 綁定change 事件$.SelectChange = function(target, dest, url) { // 結合連結鏈target.data("nextSelect", dest ); // 記錄預設選項(first option) if (target.data("defaultOpt") == null) target.data("defaultOpt", target.children() .first()); dest.data("defaultOpt", dest.children().first()); $(document).ready(function() { target. change(function(event) { var _target = event.target || window.event.srcElement; if (_target.value != target.data("defaultOpt").attr("value")) { $.getJSON(url, { "name": _target.name, "value": _target.value }, function(data, status) { if (status == "success") { $.SelectReset(target.data("nextSelect")); $.SelectLoad(target.data("nextSelect"), data); } }); // 後台以json 格式傳送資料} else { $.SelectReset(target.data("nextSelect")); } }); }); }; })(jQuery);