jquery ui datepicker - altfield as div而不是input

时间:2009-09-07 10:11:50

标签: jquery-ui datepicker

我在jquery ui datepicker上使用altfield和altformat选项向用户显示友好日期,同时在隐藏字段中为数据库格式化日期。唯一的问题是,我不希望在输入框中显示给用户的日期(在视觉上它表明他们可以输入它),我只是希望它显示为文本。我知道我可以设置输入框的样式,因此它看起来不像是一个,但我宁愿只使用div并更新文本。但是,它似乎只适用于输入字段,如果将其设置为div id,它什么都不做。

有没有人克服过这个问题?

5 个答案:

答案 0 :(得分:11)

我已经在onSelect中使用它来显示div:

onSelect: function(dateText, inst) {
//formatDate Requires a new date object to work
      var myDate = new Date(dateText);

//Set a new var with different format to use
      var newFormat = $.datepicker.formatDate("DD, d MM, yy", myDate);
//Choose the div you want to replace
      $("#yourselctorhere").html(newFormat);
    }
  });

答案 1 :(得分:5)

答案是输入type = hidden然后选择值并将其分配给div的文本

$("myPicker").datepicker({
altField: "#altInput",

var hiddenDate = $("[name='altInput']").attr('value');
$("#myDate").text(hiddenDate);}
});

<input id = "altInput" type = "hidden"/>
<div id = "myDate"></div>

答案 2 :(得分:0)

使用Css:P

.div,.div:focus{
    display:block;
    background:#fff;
    border:0px;
    color:#333
}
<input type="text" class="div" readonly id="altInput" />

答案 3 :(得分:0)

我发现的最好方法是在 jquery.ui.datepicker-cc.js 文件中更改此内容

首先搜索 _updateAlternative 函数并更改此行:

$(altField).each(function() { $(this).val(dateStr); });

例如我已经改为:

$(altField).each(function() { $(this).val(dateStr); $(this).text(dateStr); });

现在您可以将替代文本放在您想要的任何元素中。 我希望这有帮助。

答案 4 :(得分:0)

dateFormat: 'yy-mm-dd',
// altField: '#dp-date',
onSelect: function(dateText) {
    $('#dp-date').html(dateText);
},