2017-04-13 22 views
0

在WordPress上使用Ninja Forms。我有一個包含多個日期字段的頁面,其格式是相同的(到達日期和出發日期)。我需要更改兩個日期字段的值。在WordPress上使用忍者形式尋址和設置2個日期選擇器字段

以下示例腳本的工作(我可以通過一個WP插件添加了jQuery的頁面),但改變這兩個字段的值:

<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> 

我不知道如何解決2場分別。通過忍者形式創作的2場是這樣的(他們只用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> 

任何想法如何調整jQuery的?

回答

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'); 
       } 
      } 
     } 
    } 
相關問題