1

On WordPress is use Ninja Forms. i have a page with multiple Date Fields in the same Form ( date of arrival and date of departure). I need to change the Value of both Date fields.

the following example script works (i can add jQuery to the page by a WP plugin), but is changing the value of both fields:

<script>
$( document ).ready( function() {
new(Marionette.Object.extend( {
    initialize: function() {
        this.listenTo( Backbone.Radio.channel( 'pikaday' ), 'init', this.modifyDatepicker );
    },
    modifyDatepicker: function( dateObject, fieldModel ) {
        dateObject.pikaday.setDate( '04/11/2016' );
    }
}));
});
</script>

i don't know how to address the 2 fields separately. The 2 fields created by Ninja Forms look like this (they differ only by the ID):

<div class="nf-field-element">
<div class="pikaday__container"><input id="nf-field-66" name="nf-field-66" class="ninja-forms-field nf-element datepicker" value="11/04/2016" type="hidden">
<input class="pikaday__display pikaday__display--pikaday ninja-forms-field nf-element datepicker" placeholder="" type="text">
</div></div>

Any idea how to adjust the jQuery?

4

1 回答 1

0

我只需要为客户解决完全相同的问题。虽然我没有通过 jQuery 修复它,但我的解决方案可能会帮助您 - 或其他任何有类似问题的人:

我必须使用查询字符串中定义的值预先填充我的日期选择器,并按照以下方式进行:

  1. 添加一个与“ninja_forms_render_default_value”挂钩的过滤器
  2. 过滤“日期”字段类型
  3. 检查具有给定键的日期字段
  4. 检查是否设置了查询字符串

为了达到同样的效果,你可以把它复制到你的functions.php中:

    add_filter( 'ninja_forms_render_default_value', 'my_change_nf_default_value', 10, 3 );

    function my_change_nf_default_value( $default_value, $field_type, $field_settings ) {

        if ('date' == $field_type ) {

            if ('date_from_query_string' == $field_settings['key']) {
                if (!empty( get_query_var('date_from') )) {
                    return get_query_var('date_from');
                }
            }

            if ('date_from_query_string' == $field_settings['key']) {
                if (!empty( get_query_var('date_to') )) {
                    return get_query_var('date_to');
                }
            }
        }
    }
于 2017-05-07T13:35:31.517 回答