如何使jQuery ui datepicker按钮图像只读

时间:2014-04-08 10:52:00

标签: javascript php jquery jquery-ui jquery-ui-datepicker

当我只读取我的日期选择器时,我发现用户无法在文本框中输入任何内容。但是,他们仍然可以使用日历图标更改值。如何隐藏日历图标以便用户无法更改日期值?

我不想禁用datepicker,因为我需要在表单提交时将值发布到服务器。

$(function () {
    $(".datepicker").datepicker({
        showOn: "button",
        buttonImage: "../calendar/images/calendar.gif",
        buttonImageOnly: true,
        changeMonth: true,
        changeYear: true,
        onClose: function () {
            $(this).focus();
        }
    });
});    

2 个答案:

答案 0 :(得分:2)

没有这样的方法来做这些事情,但你可以通过以下几个方面:

您可以将允许的范围设置为某个无效范围,以便用户无法选择任何日期:

$(".datepicker").datepicker({
      minDate: -1,  // Add this one further
      maxDate: -2,   // Add this one further
      showOn: "button",
      buttonImage: "../calendar/images/calendar.gif",
      buttonImageOnly: true,
      changeMonth: true,
      changeYear: true,
      onClose: function () {
          $(this).focus();
      }
}).attr('readonly', 'readonly');

JS Fiddle

答案 1 :(得分:1)

将输入更改为只读时,只需销毁datepicker:

$(".datepicker").datepicker("destroy").prop("readonly", true);

Demo #1

或者,您可以隐藏图像触发器:

$(".datepicker").prop("readonly", true).next("img").hide();

Demo #2

对于按钮触发,您可以简单地禁用它:

$(".datepicker").prop("readonly", true).next("button").prop("disabled", true);

Demo #3