【问题标题】:How to write a script to restrict Ninja Form date picker for past dates?如何编写脚本来限制 Ninja Form 日期选择器的过去日期?
【发布时间】:2021-11-26 16:01:57
【问题描述】:

我的 WordPress 网站中有一个使用 Ninja Forms 插件的日期选择器字段。我不认为该插件让我可以选择限制过去的日期。所以我想实现用户不能选择任何过去的日期。

我当然尝试过用谷歌搜索解决方案,但我对 javascript/jquery 不太擅长,也不明白如何实现这一点。任何人都可以帮忙吗?非常感谢!

【问题讨论】:

标签: javascript jquery wordpress datepicker


【解决方案1】:

似乎 Ninja Forms 有一个我不熟悉的提前日期选择器选项,但这里是 link

现在我不知道确切的 Ninja Forms 语法,但这应该会让你的大脑兴奋起来。 否则,您可以使用 add_filter()function 之类的方式创建一个小的自定义 WP-plugin

<?php
  
  add_filter( 'ninja_form_date_limt'  );
  
  function ninja_form_date_limt() {
      wp_enqueue_script( 
        'ninja_form_date_limt', 
        plugin_dir_url( __FILE__ ) . 'script.js', 
        array( 'jquery' ), 
        false, 
        true 
      );
  }

这会调用 JQuery 文件中的 JavaScriptJavaScript 函数,或者在您保留自定义 JS 的任何地方,这可能会使用这样的东西。

var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
dateObject.pikaday.setMinDate(tomorrow); 

【讨论】:

  • 您好,尼克,谢谢您的回答!在自定义代码方面,我并不是很擅长,所以老实说,我真的不知道从哪里开始调整您提供的代码以使其适合我的需求。如果我只是简单地复制并粘贴它,它会给我一个错误,我的整个网站不再工作了
  • 是的,这段代码绝对会产生错误。由于上面的示例是示例,需要其他函数或参数才能在 WordPress 中运行。我希望也许它会让你开始。但是看看我提供的链接Ninja Forms Advance Dates这是一个无代码解决方案。
【解决方案2】:

通过结合我在尝试解决此问题时在网络上找到的一些内容,找到了解决方案。

只需将此代码添加到您想要限制过去日期的日期选择器的任何页面。这也限制了当天,所以他们必须从明天开始选择。

<script>
jQuery(document).ready( function( $ ) {
var customDatePicker = Marionette.Object.extend( {
initialize: function() {

this.listenTo( Backbone.Radio.channel( 'flatpickr' ), 'init', this.modifyDatepicker );
},
modifyDatepicker: function( dateObject, fieldModel ) {
var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
dateObject.set("minDate", tomorrow );
}
});


new customDatePicker();
} );
</script>

【讨论】:

    猜你喜欢
    • 2014-08-18
    • 1970-01-01
    • 2012-09-09
    • 2014-01-24
    • 2017-11-25
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 2020-03-17
    相关资源
    最近更新 更多