【问题标题】:jQuery DateTime pickerjQuery 日期时间选择器
【发布时间】:2010-06-23 14:18:57
【问题描述】:

我有一个带有 jquery ui 日期时间选择器的文本框。当我打开页面时,jquery 会清除我的文本框。(文本框有一个默认值)有什么方法可以阻止这个动作吗?

查看:

<div class="editor-field">
                <%: Html.TextBoxFor(model => model.Start, String.Format("{0:g}", Model.Start)) %>
                <%: Html.ValidationMessageFor(model => model.Start) %>
</div>

.js

$(document).ready(function () {
$("#Start").datepicker({
        showOn: 'button',
        buttonImage: '../../Content/img/cal.jpg',
        buttonImageOnly: true,
    });
$( "#Start, #End").datepicker( "option", "showAnim", 'slideDown' );
});

谢谢你, 佩蒂

【问题讨论】:

  • 调用$("#Start").datepicker()之前文本框中的值是否存在?

标签: jquery asp.net-mvc jquery-ui


【解决方案1】:

能不能在调用前获取值,之后再设置?

$(document).ready(function () {
    var default_date = $("#Start").val();
    $("#Start").datepicker({
            showOn: 'button',
            buttonImage: '../../Content/img/cal.jpg',
            buttonImageOnly: true,
        });
    $( "#Start, #End").datepicker( "option", "showAnim", 'slideDown' );
    $("#Start").val(default_date);
});

也就是说,我猜还有其他问题。自从我使用 datepicker 插件已经有一段时间了,但我无法想象它会在你创建它时从输入中删除一个有效的日期值。

你能把你的代码贴在Pastebin这样的地方吗?

编辑:

哦,你是对的格式。它期望的默认日期格式是 mm/dd/yy。您要做的是设置日期格式选项以反映您的特定格式。您还需要从日期值中去除时间部分。代码看起来像这样(可能不是 100% coreect):

$(document).ready(function () {
    var date_stripped_of_time = $("#Start").val().substring(0, 10);
    $("#Start").val(date_stripped_of_time);
    $("#Start").datepicker({
            showOn: 'button',
            buttonImage: '../../Content/img/cal.jpg',
            buttonImageOnly: true,
            dateFormat: 'yy.mm.dd',
        });
    $( "#Start, #End").datepicker( "option", "showAnim", 'slideDown' );
});

您可以通过查看options tab in the DatePicker documentationformatDate documentation 了解更多信息,了解您可以将哪些内容用于 dateFormat 字符串。

【讨论】:

  • 这是默认格式:2010.06.09。 0:00:00。 (以及文本框中的值)。也许jquery无法接受或识别..您的解决方案很简单,但它正在工作,谢谢:)
【解决方案2】:

我需要查看您的代码,但 jquery datepicker 插件不会清除文本框。我一直在我的网络应用上使用它,但我从未经历过这种行为。

也许您有其他一些代码行干扰?你能发布你的代码吗?

编辑:这些 Mvc 辅助命令的 html 输出会更有用,无论如何我可以猜测:文本框中的日期以 Jquery datepicker 无法识别的格式呈现。由于 datepicker 强制执行有效的日期格式,可能文本框中存在格式错误的日期会使插件将其删除。

【讨论】:

    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 2011-03-27
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多