FSN#36009 Multiselect ingeklapt beginnen

svn path=/Website/trunk/; revision=28789
This commit is contained in:
Jos Groot Lipman
2016-04-07 07:35:05 +00:00
parent 29b3d923cf
commit 6d00747c5f
3 changed files with 41 additions and 28 deletions

View File

@@ -289,6 +289,45 @@ jQuery.fn.filterByText = function(textbox, selectSingleMatch) {
});
};
// Add a clickable sign after a select element that when clicked
// toggles the multiple attribute on the select box
(function($){
$( document ).on('click', '.multi_select_toggle', function(e){
var sel_id = $(e.target).attr("fcltfor");
var selector = $('select#' + sel_id);
if (selector.length && selector[0].className.match(/^ui-/))
return; // Afblijven van jQuery calendar jaar listboxje
var old = selector.attr('multiple');
selector.attr('multiple', !old);
selector.attr('size', old?1:Math.min(selector.find("option").length, 8));
$(e.target).html(old?' »':' «');
})
$.fn.extend({
multiSelectToggle : function(options){
//Settings list and the default values
var defaults = {
label: ' »'
};
var options = $.extend(defaults, options);
return this.each(function() {
var span = $('<span class="labelextra" fcltfor="' + this.id + '" />').html(options.label).addClass('multi_select_toggle');
var lbl = $("label[for=" + this.id + "]")
if (lbl.length)
$(lbl).after(span);
else
$(this).after(span);
});
}
});
$(function () {
$('select[fcltmulti=1]').multiSelectToggle();
});
})(jQuery);
if (window.fcltfilters)
{
$(function ()

View File

@@ -67,32 +67,6 @@ function scaffolding_search(model, scf_params)
event.stopPropagation();
})
});
// Add a clickable sign after a select element that when clicked
// toggles the multiple attribute on the select box
(function($){
$.fn.extend({
multiSelectToggle : function(options){
//Settings list and the default values
var defaults = {
label: '&nbsp;&raquo;'
};
var options = $.extend(defaults, options);
$( document ).on('click', $('.multi_select_toggle'), function(e){
var selector = $(e.target).prev('select');
if (selector.length && selector[0].className.match(/^ui-/))
return; // Afblijven van jQuery calendar jaar listboxje
var old = selector.attr('multiple');
selector.attr('multiple', !old);
selector.attr('size', old?1:Math.min(selector.find("option").length, 8));
$(selector).next().html(old?'&nbsp;&raquo;':'&nbsp;&laquo;');
})
var span = $('<span />').html(options.label).addClass('multi_select_toggle');
$(this).after(span);
}
});
})(jQuery);
// where needed
$(function($){

View File

@@ -95,8 +95,8 @@ function FCLTselector(fieldName, sql, params)
%><select class="fld<%=fieldName%><%=params.required? " required" : ""%> <%=params.extraclass? " " + params.extraclass : ""%>"
name="<%=fieldName%>"
id="<%=params.id%>"
<%=params.multi? " multiple" : ""%>
<%=params.multi && params.size? " size=" + params.size : ""%>
<%=params.multi && params.initKey && String(params.initKey).split(",").length>1? " multiple" : ""%>
<%=params.multi? " fcltmulti=1" : ""%>
<%=params.disable? " disabled" : ""%>
<%=params.onChange? " onchange='" + safe.htmlattr(params.onChange) + "'" : ""%>
<%=params.onDblClick? " onDblClick='" + safe.htmlattr(params.onDblClick) + "'" : "" /* LET OP DAT HTML-HAAKJE HIERACHTER */ %>>