/* MARKUP */ $.fn.uaString = function(options) { options = $.extend({ bMandatory: true , bToolTip: true , //true, TYPE_OPTIONAL, TYPE_IGNORE bDisabled: false , bReadOnly: false , iMinChars: 10 , //min number of characters iMaxChars: 100 , //max number f characters defaultValue: '' , hint: '' , msg: '' }, options); $.fn.extend(this,this.uaBaseObject({ bMandatory: options.bMandatory, //true, TYPE_OPTIONAL, TYPE_IGNORE bDisabled: options.bDisabled, bReadOnly: options.bReadOnly, defaultValue: options.defaultValue, iMinChars: options.iMinChars, bToolTip: options.bToolTip, hint: options.hint, msg: options.msg })); $(this). attr("maxLength",options.iMaxChars). trigger(EV_INIT); this. off(EV_CLEAR). off(EV_SET). on(EV_CLEAR,function(ev) { ev.stopImmediatePropagation(); $(this).val('').trigger(EV_CLEAR_ERRORS); }). on(EV_SET,function(ev) { ev.stopImmediatePropagation(); $(this).val(ev.uaData.data.label); $(this).data("id",JSON.stringify(!ev.uaData.data.id? null : ev.uaData.data.id)); }). on(EV_SET_DEFAULT,function(ev) { ev.stopImmediatePropagation(); if(options.bDisabled) { $(this).addClass('uaDisabled'); } else { $(this).removeClass('uaDisabled'); } $(this).attr({placeholder : options.hint}); $(this).val(options.defaultValue); }). on(EV_CHECK_SPECIFIC_ERRORS, function(ev) {//check text length ev.stopImmediatePropagation(); if($(this).hasClass('text-danger') || !$(this).val().length) return; //this field is optional if($(this).val().length !==0 && $(this).val().length < options.iMinChars) { $(this).addClass('border-danger').trigger($.Event(EV_SET_ERROR_MSG,{uaData:{data:{msg:options.msg || "This field is optional.
You may leave it blank or you MUST enter a minimum of " + options.iMinChars + " characters" }}})); }; }); this.getSelection = function() {//select value & id return { label: $(this).val(), id: JSON.parse($(this).data("id")) }; };//this.getSelection = function() return this; };//uaString