【发布时间】:2014-09-11 08:14:26
【问题描述】:
我在 WordPress 中有一个带有重力表格的表格,这个表格有 2 个日期选择器:入住日期和退房日期,但我希望当客户在入住日期中选择一个日期时,自动检查 -在入住日期之后的一天更新日期,所以,这就是我所做的没有结果:
首先,我在我的主题中的functions.php 中添加了一个函数:
/**
* Gravity Forms Datepicker Changes
*/
function my_scripts_method() {
wp_register_script( 'my-js-file',
get_template_directory_uri() . '/js/my-js.js',
array( 'jquery' ),
'1.0',
false );
wp_enqueue_script( 'my-js-file' );
}
add_action( 'wp_enqueue_scripts', 'my_scripts_method' );
然后我在我的主题中创建了一个名为 /js 的文件夹,还创建了一个名为 my-js.js 的文件,其中包含以下代码:
jQuery.noConflict();
jQuery(document).ready(function ($)) {
$('#input_7_1').datepicker({
changeMonth: true,
onSelect: function (selectedDate) {
$('#input_7_5').datepicker('option', 'minDate', selectedDate);
}
});
$('#input_7_5').datepicker({
changeMonth: true,
onSelect: function (selectedDate) {
$('#input_7_1').datepicker('option', 'maxDate', selectedDate);
}
});
});
但问题是我的日期选择器没有任何影响,没有任何变化,知道为什么会这样吗?
还有一个奇怪的事情,如果重力表格有这个文件:datepicker.js,如果我删除那里的所有内容,没有任何变化,或者如果改变一些值,也没有变化。这是该文件中的代码:
jQuery(document).ready(gformInitDatepicker);
function gformInitDatepicker(){
jQuery('.datepicker').each(
function (){
var element = jQuery(this);
var format = "mm/dd/yy";
if(element.hasClass("mdy"))
format = "mm/dd/yy";
else if(element.hasClass("dmy"))
format = "dd/mm/yy";
else if(element.hasClass("dmy_dash"))
format = "dd-mm-yy";
else if(element.hasClass("dmy_dot"))
format = "dd.mm.yy";
else if(element.hasClass("ymd_slash"))
format = "yy/mm/dd";
else if(element.hasClass("ymd_dash"))
format = "yy-mm-dd";
else if(element.hasClass("ymd_dot"))
format = "yy.mm.dd";
var image = "";
var showOn = "focus";
if(element.hasClass("datepicker_with_icon")){
showOn = "both";
image = jQuery('#gforms_calendar_icon_' + this.id).val();
}
element.datepicker({ yearRange: '-100:+20', minDate: +10, maxDate: "+24M +30D", showOn: showOn, buttonImage: image, buttonImageOnly: true, dateFormat: format, changeMonth: false, changeYear: false, showAnim: 'slideDown', duration: 'slow' }).attr('readonly','readonly');
}
);
}
【问题讨论】:
-
可能是其他日期选择器代码在您的代码之后运行
-
那么,我如何确定这一点?重力表单插件中有一个文件,其中其他代码应用于所有日期选择器
-
先查看页面源代码,看看是不是真的。在声明新设置之前可能还需要使用
destroy方法。或者只是传入新选项,如果它们已经初始化,则不要初始化它们 -
你能给我举个例子说明如何使用destroy方法吗?
-
$('#input_7_1').datepicker('destroy');
标签: jquery wordpress forms datepicker gravity