Fix input trigger on source field types with multiple selected values (#3798)
Credit to @jimcottrell. Tested by https://github.com/octoberrain/test-plugin/pull/55
This commit is contained in:
parent
9d126a0ab6
commit
6f2ed028b3
|
|
@ -57,7 +57,7 @@
|
|||
this.updateTarget(!$(this.options.trigger + ':checked', this.triggerParent).length)
|
||||
}
|
||||
else if (this.triggerCondition == 'value') {
|
||||
var trigger, triggerValue = ''
|
||||
var trigger, triggered = false
|
||||
|
||||
trigger = $(this.options.trigger, this.triggerParent)
|
||||
.not('input[type=checkbox], input[type=radio], input[type=button], input[type=submit]')
|
||||
|
|
@ -67,11 +67,19 @@
|
|||
.not(':not(input[type=checkbox]:checked, input[type=radio]:checked)')
|
||||
}
|
||||
|
||||
if (!!trigger.length) {
|
||||
triggerValue = trigger.val()
|
||||
}
|
||||
var self = this
|
||||
trigger.each(function() {
|
||||
var triggerValue = $(this).val();
|
||||
|
||||
this.updateTarget($.inArray(triggerValue, this.triggerConditionValue) != -1)
|
||||
$.each($.isArray(triggerValue) ? triggerValue : [triggerValue], function(key, val) {
|
||||
triggered = $.inArray(val, self.triggerConditionValue) != -1
|
||||
return !triggered
|
||||
})
|
||||
|
||||
return !triggered
|
||||
})
|
||||
|
||||
this.updateTarget(triggered)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4170,11 +4170,14 @@ self.onConditionChanged()})
|
|||
self.onConditionChanged()}
|
||||
TriggerOn.prototype.onConditionChanged=function(){if(this.triggerCondition=='checked'){this.updateTarget(!!$(this.options.trigger+':checked',this.triggerParent).length)}
|
||||
else if(this.triggerCondition=='unchecked'){this.updateTarget(!$(this.options.trigger+':checked',this.triggerParent).length)}
|
||||
else if(this.triggerCondition=='value'){var trigger,triggerValue=''
|
||||
else if(this.triggerCondition=='value'){var trigger,triggered=false
|
||||
trigger=$(this.options.trigger,this.triggerParent).not('input[type=checkbox], input[type=radio], input[type=button], input[type=submit]')
|
||||
if(!trigger.length){trigger=$(this.options.trigger,this.triggerParent).not(':not(input[type=checkbox]:checked, input[type=radio]:checked)')}
|
||||
if(!!trigger.length){triggerValue=trigger.val()}
|
||||
this.updateTarget($.inArray(triggerValue,this.triggerConditionValue)!=-1)}}
|
||||
var self=this
|
||||
trigger.each(function(){var triggerValue=$(this).val();$.each($.isArray(triggerValue)?triggerValue:[triggerValue],function(key,val){triggered=$.inArray(val,self.triggerConditionValue)!=-1
|
||||
return!triggered})
|
||||
return!triggered})
|
||||
this.updateTarget(triggered)}}
|
||||
TriggerOn.prototype.updateTarget=function(status){var self=this,actions=this.options.triggerAction.split('|')
|
||||
$.each(actions,function(index,action){self.updateTargetAction(action,status)})
|
||||
$(window).trigger('resize')
|
||||
|
|
|
|||
Loading…
Reference in New Issue