How to Set the Default Properties for a New Field

How to Set the Default Properties for a New Field

IntroductionThe SetDefaultValues_{$type} functionUsing get_form_editor_inline_script_on_page_render()Setting the default ChoicesSetting the default Inputs

Introduction
Historically it』s been possible to set the default properties for a new field by using the gform_editor_js_set_default_values hook to echo a custom case into the switch statement within the SetDefaultValues() function in js.php, however, it』s also been possible to define your own SetDefaultValues_{$type} function instead. In this article we will show how you can use that function in your new field which extends the GF_Field class.
The SetDefaultValues_{$type} function
Here』s what a basic SetDefaultValues_ function would look like, the function name ends with your field type, in this case the field type is simple. The function is passed the field object so you can set the default values of any of the properties, in this case we are setting the field label.
123function SetDefaultValues_simple(field) {    field.label = 'The Default Field Label Goes Here';}
See the Field Object article for the standard field properties.
Using get_form_editor_inline_script_on_page_render()
The GF_Field class includes the get_form_editor_inline_script_on_page_render() method which can be used to include scripts in the form editor. In this example we are assigning the value returned by the get_form_editor_field_title() method as the default label for new fields of this type.
1234567public function get_form_editor_inline_script_on_page_render() {     // set the default field label for the field    $script = sprintf( "function SetDefaultValues_%s(field) {field.label = '%s';}", $this->type, $this->get_form_editor_field_title() ) . PHP_EOL;     return $script;}
Setting the default Choices
You can use the Choice() function when defining the fields default choices.
1new Choice(text, value, price)
The value and price properties are optional, if a value is not specified the text will be assigned to the choice value.
Here』s an example showing how that can be used with the SetDefaultValues_ function.
1234function SetDefaultValues_simple(field) {    field.label = 'The Default Field Label Goes Here';    field.choices = [new Choice('Your First Choice'), new Choice('Your Second Choice'), new Choice('Your Third Choice')];}
Setting the default Inputs
You can use the Input() function when defining the fields default inputs.
1new Input(id, label)
The id is a string in the format {field_id}.{input_number}, starting with the input_number of 1. For example, the first input of field 5 would be 5.1. We also recommend skipping ids ending in zero, so you would skip 5.10, 5.20 etc.
Here』s an example showing how that can be used with the SetDefaultValues_ function.
1234function SetDefaultValues_simple(field) {    field.label = 'The Default Field Label Goes Here';    field.inputs = [new Input(field.id + '.1', 'Your First Choice'), new Input(field.id + '.2', 'Your Second Choice'), new Input(field.id + '.3', 'Your Third Choice')];}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注