🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

Just another jQuery plugin for handling conditional forms that have the ability to show and hide certain form fields based on previous user input.

Conditional-Logic

Documentation

A jQuery plugin that will show or hide a "dependent" field based on some other "master" field.

Example Usage

You probably want to just look at the example, but if you prefer to read prose instead of code, here goes --

$('#dependent-field').dependsOn('#master-field');

If #master-field is a checkbox, the row containing '#dependent-field' will be shown/hidden based on whether the master field is checked/unchecked, respectively.

If #master-field is a select/dropdown, the row containing '#dependent-field' will be shown/hidden based on whether the selected option has a non-empty value.

You may additionally specify a conditional value or values:

$('#dependent-field').dependsOn('#master-field', 'value');

$('#dependent-field').dependsOn('#master-field', ['value', 'value2']);

This only makes sense when used with a select element - if the value of the selected option is any of the specified values, the dependent field will be shown.

Note: Like you'd expect, you may use any jQuery selector for the first call. The plugin is also written to support idiomatic jQuery chain-ability so you can do things like:

$('input.depends-on-xyz').dependsOn('#xyz').somethingElse().anotherThing()

If you have a input text in a container div, you can specify the 'depends-container' class in the master container DIV:

<div class="depends-container"> {{ form_row(form.my_input) }} </div> 

Also you can give a callback after the toggle:

 var fieldRequired = function(){ 	var target = $('#target').find('input[type="text"]');  	if(target.is(':visible')){        	     	//add require     	target.attr(required,required);  	}else{      	//remove require     	target.removeAttr(required);     	     } }  $('.ui.depends.target').dependsOn('.ui.depends.master',null,fieldRequired);  

Known Limitations/Shortcomings

  • Only works with checkboxes and select elements.
  • The plugin depends on your form field being wrapped in a row using a paragraph tag as it looks for the closest wrapping paragraph tag to show/hide. If you use a div or some other element type to wrap your form rows, you will need to modify the .closest('p') calls to use .closest('div') or whatnot.

You May Also Like