Jquery.sumoselect取值

前端获取Jquery.sumoselect插件选中结果的方法:
Jquery.sumoselect源码:

/*!
 * jquery.sumoselect - v1.0.0
 * http://hemantnegi.github.io/jquery.sumoselect
 * 2014-04-08
 * Copyright 2014 Hemant Negi
 * Email : [email protected]
 */
(function(a){a.fn.SumoSelect=function(b){var c=a.extend({placeholder:"Select Here",csvDispCount:3,floatWidth:400,forceCustomRendering:false,nativeOnDevice:["Android","BlackBerry","iPhone","iPad","iPod","Opera Mini","IEMobile","Silk"],outputAsCSV:true,csvSepChar:",",okCancelInMulti:false,triggerChangeCombined:true},b);return this.each(function(){var d=this;this.E=a(this);this.is_multi=d.E.attr("multiple");this.select,this.caption,this.placeholder,this.optDiv,this.CaptionCont,this.is_floating=this.is_opened=false,this.backdrop,this.Pstate=[];this.createElems=function(){d.E.wrap('<div class="SumoSelect">');d.select=d.E.parent();d.caption=a("
//修改此处标签,并添加name属性,换为<div name='CheckBoxSelect'><div>
<span></span>
//在function可以查看结果:
//alert(document.getElementsByName("CheckBoxSelect").innerText)
//若存在多个name,则类似数组输出
//alert(document.getElementsByName("CheckBoxSelect")[0..].innerText)

");d.CaptionCont=a('<p class="CaptionCont"><label><i></i></label></p>').addClass("SlectBox").attr("style",d.E.attr("style")).prepend(d.caption);d.select.append(d.CaptionCont);if(c.outputAsCSV&&d.is_multi&&d.E.attr("name")){d.select.append(a('<input class="HEMANT123" type="hidden" />').attr("name",d.E.attr("name")).val(d.getSelStr()));d.E.removeAttr("name")}if(d.isMobile()&&!c.forceCustomRendering){d.setNativeMobile();return}d.E.hide();d.optDiv=a('<div class="optWrapper">');d.floatingList();ul=a('<ul class="options">');d.optDiv.append(ul);a(d.E.children("option")).each(function(f,e){e=a(e);li=a('<li data-val="'+e.val()+'"><label>'+e.text()+"</label></li>");if(d.is_multi){li.prepend("<span><i></i></span>")}ul.append(li);if(e.attr("disabled")){li.addClass("disabled")}else{d.onOptClick(li)}if(e.attr("selected")){li.addClass("selected")}});if(d.is_multi){d.multiSelelect()}if(!a(".BackdropSelect").length){a("body").append('<div class="BackdropSelect">')}d.backdrop=a(".BackdropSelect");d.select.append(d.optDiv);d.basicEvents()};this.getSelStr=function(){sopt=[];d.E.children("option:selected").each(function(){sopt.push(a(this).val())});return sopt.join(c.csvSepChar)};this.multiSelelect=function(){d.optDiv.addClass("multiple");okbtn=a('<p class="btnOk">OK</p>').click(function(){if(c.triggerChangeCombined){changed=false;if(d.E.children("option:selected").length!=d.Pstate.length){changed=true}else{d.E.children("option:selected").each(function(){if(d.Pstate.indexOf(a(this).val())<0){changed=true}})}if(changed){d.E.trigger("change");d.setText()}}d.hideOpts()});cancelBtn=a('<p class="btnCancel">Cancel</p>').click(function(){d.E.children("option:selected").each(function(){this.selected=false});d.optDiv.find("li.selected").removeClass("selected");for(i=0;i<d.Pstate.length;i++){d.E.children('option[value="'+d.Pstate[i]+'"]')[0].selected=true;d.optDiv.find('li[data-val="'+d.Pstate[i]+'"]').addClass("selected")}d.setText();d.hideOpts()});d.optDiv.append(a('<div class="MultiControls">').append(okbtn).append(cancelBtn))};this.showOpts=function(){d.is_opened=true;d.backdrop.show();d.optDiv.addClass("open");if(d.is_floating){H=d.optDiv.children("ul").outerHeight()+2;if(d.is_multi){H=H+parseInt(d.optDiv.css("padding-bottom"))}d.optDiv.css("height",H)}if(d.is_multi&&(d.is_floating||c.okCancelInMulti)){d.Pstate=[];d.E.children("option:selected").each(function(){d.Pstate.push(a(this).val())})}};this.hideOpts=function(){d.is_opened=false;d.backdrop.hide();d.optDiv.removeClass("open")};this.basicEvents=function(){d.CaptionCont.click(function(e){if(d.is_opened){d.hideOpts()}else{d.showOpts()}d.E.trigger("click")});d.backdrop.click(function(){d.hideOpts()});d.E.on("blur",function(){d.optDiv.removeClass("open")});a(window).on("resize.sumo",function(){d.floatingList()})};this.onOptClick=function(e){e.click(function(){var f=a(this);txt="";if(d.is_multi){f.toggleClass("selected");d.E.children('option[value="'+f.attr("data-val")+'"]')[0].selected=f.hasClass("selected")}else{f.parent().find("li.selected").removeClass("selected");f.toggleClass("selected");d.E.val(f.attr("data-val"))}if(!(d.is_multi&&c.triggerChangeCombined&&(d.is_floating||c.okCancelInMulti))){d.setText();d.E.trigger("change")}if(!d.is_multi){d.hideOpts()}})};this.setText=function(){d.placeholder="";if(d.is_multi){sels=d.E.children(":selected").not(":disabled");for(i=0;i<sels.length;i++){if(i>=c.csvDispCount&&c.csvDispCount){d.placeholder=i+"+ Selected";break}else{d.placeholder+=a(sels[i]).text()+", "}}d.placeholder=d.placeholder.replace(/,([^,]*)$/,"$1")}else{d.placeholder=d.E.children(":selected").not(":disabled").text()}is_placeholder=false;if(!d.placeholder){is_placeholder=true;d.placeholder=d.E.attr("placeholder");if(!d.placeholder){d.placeholder=d.E.children("option:disabled:selected").text()}}d.placeholder=d.placeholder?d.placeholder:c.placeholder;d.caption.text(d.placeholder);csvField=d.select.find("input.HEMANT123");if(csvField.length){csvField.val(d.getSelStr())}if(is_placeholder){d.caption.addClass("placeholder")}else{d.caption.removeClass("placeholder")}return d.placeholder};this.isMobile=function(){var f=navigator.userAgent||navigator.vendor||window.opera;for(var e in c.nativeOnDevice){if(f.toLowerCase().indexOf(c.nativeOnDevice[e].toLowerCase())>0){return c.nativeOnDevice[e]}}return false};this.setNativeMobile=function(){d.E.addClass("SelectClass").css("height",d.select.outerHeight());d.E.change(function(){d.setText()})};this.floatingList=function(){d.is_floating=a(window).width()<=c.floatWidth;d.optDiv.toggleClass("isFloating",d.is_floating);if(!d.is_floating){d.optDiv.css("height","")}d.optDiv.toggleClass("okCancelInMulti",c.okCancelInMulti&&!d.is_floating)};this.init=function(){d.createElems();d.setText()};d.init()})}}(jQuery));

猜你喜欢

转载自blog.csdn.net/weixin_42176639/article/details/81485959