javascript - 当 id 具有句点运算符时启用打开日期选择器

标签 javascript jquery datepicker

我正在尝试打开日期选择器对话框。为此,我在 html 输入控件中编写了 inlinde 代码。代码如下所示

<form:input path="sanctionLoans[${count.index}].sanctionDate"
                                    readonly="${param.readOnly}" 
                                    style="text-align: right; width: 100px;"
                                    onclick="findMinDate()"
                                    onclick="$(this).datepicker({ dateFormat: 'dd-mm-yy' ,changeMonth: true,changeYear: true }).datepicker('show');"/>

此代码工作正常并打开对话框。但现在我想将此代码编写为函数,以便我可以处理其他事件,例如 onselect、onclose 等。为此,我编写了一个类似这样的函数。

function findMinDate(event){
    var id = $(event).attr('id');
    console.log(id);
    id = id.replace(/\./g, "\\\\.");
    var ele = '#' + id;
    console.log(ele);
    $("#sanctionLoans1\\.sanctionDate").datepicker({
        dateFormat: 'dd-mm-yy' ,    
        changeMonth: true,
        changeYear: true
        onSelect: function(endDate) {

          }
        })
        .datepicker('show');
}

现在这个函数有问题,因为输入控件 ID 包含句点运算符(.),所以首先将其替换为“\.”。但是将 .(点) 替换为\后。它不会打开对话框。但如果硬核称其为“#sanctionLoans0\.sanctionDate”,那么它工作正常。 有人可以帮忙解决功能上的问题吗?

最佳答案

  1. 这个

    var id = $(event).attr('id');
    

    应该是

    var id = $(event.target).attr('id'); //or event.target.id
    
  2. id = id.replace(/\./g, "\\."); 当您将变量传递给选择器时。

  3. changeYear: true 错过了 ,

此外,我看到您已经有了 onclick="$(this).datepicker({ dateFormat: 'dd-mm-yy' ,changeMonth: true,changeYear: true }).datepicker('show') ;",这样就不需要调用内联函数了。

<强> Fiddle Demo

关于javascript - 当 id 具有句点运算符时启用打开日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31152687/

相关文章:

javascript - 在 JQuery UI 对话框中输入关键行为

jquery - 使用 jQuery 动画时的 div,将所有其他 div 向下推

java - Android DatePicker 一个月中的某一天?

javascript - 在钛javascript中将屏幕移动到图像上

javascript - Protractor (3.0.0)/Webdriver (2.53.0) 切换选项卡错误

javascript - 如何在 React 中过滤对象数组

javascript - 在 Birt 处理程序上使用 Javascript reportContext.setPersistentGlobalVariable 方法

javascript - 如何根据下拉菜单选择值预填表单?

ios - 如何仅从 UIDatePickerMode.DateAndTime 中删除分钟

android - 如何在 DatePickerDialog Android 中禁用今天日期之前的日期