This filter can be used to add custom options for each choice.


gform.addFilter('gform_append_field_choice_option', function (str, field, i) {
    // define the markup for your custom option
    return str;


  • str string

    An empty string, to be replaced with your custom markup.

  • field array

    The current field object.

  • i integer

    The index of the current choice.


This example adds a new option to the choice setting called custom.

It uses the gform_editor_js action to load the code snippet on the form editor page.

add_action( 'gform_editor_js', 'custom_option_editor_script' );
function custom_option_editor_script() {
	<script type='text/javascript'>
				.on('input propertychange', '.field-choice-custom', function () {
					var $this = jQuery(this);
					var i = $this.closest('li.field-choice-row').data('index');

					field = GetSelectedField();
					field.choices[i].custom = $this.val();
		gform.addFilter('gform_append_field_choice_option', function (str, field, i) {
			var inputType = GetInputType(field);
			var custom = field.choices[i].custom ? field.choices[i].custom : '';

			return "<input type='text' id='" + inputType + "_choice_custom_" + i + "' value='" + custom + "' class='field-choice-input field-choice-custom' />";

Source Code

This filter is located in js.php