【问题标题】:JQuery Mobile and MVC 3 or (MVC 4 beta) date validation format issueJQuery Mobile 和 MVC 3 或(MVC 4 beta)日期验证格式问题
【发布时间】:2012-03-19 04:35:51
【问题描述】:

我正在使用 MVC 4 Beta,但我相信这也适用于 MVC 3。

我有一个模型定义为:

public class MealViewModel
{
[Required]
public string Title { get; set; }
[Required]
public DateTime Date { get; set; }
public bool Type { get; set; }
}

我已经彻底阅读了 JQM 文档并正确设置了 JQM 页面。 它有一个带有 data-role="page" 等的 div。 在那个页面中有一个表格。在该表单中是日期类型的字段。下面是表单中的一个 sn-p。

<div class="editor-label">
@Html.LabelFor(model => model.Date)
</div>
<div class="editor-field">
@Html.TextBox("Date",null,new{type="Date"})
@Html.ValidationMessageFor(model => model.Date)
</div>

我在 iphone 上测试了该页面,它看起来很棒并且运行良好。在所有字段为空的情况下,我提交了表单,并按预期验证了必填字段。 JQM 特别好的地方在于,当我触摸一个日期输入字段时,它会自动弹出 iphone 日期输入键盘并输入今天的日期开始。这很棒。我接受日期并重新提交表格。

现在这是我遇到验证问题的时候。它呈现一条消息“字段日期必须是日期”IOS上的日期格式为“2012年3月16日。JQuery验证必须期待另一种格式的日期。

如何更改格式以使“2012 年 3 月 16 日”成为有效日期?更改必须适用于 MVC。

请帮忙。谢谢。

【问题讨论】:

    标签: jquery validation mobile date


    【解决方案1】:

    尝试在您的 jquery.validate.js 中更改它

    原创-->

    return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
    

    正确-->

    var d = new Date();
    return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value)));
    

    浏览器没有检测到当前日期,这是一个已知的错误

    【讨论】:

      【解决方案2】:

      看起来您需要输入格式,我遇到了类似的问题,这是我的 dateTime 编辑器模板中的代码。

      注意它使用:http://dev.jtsage.com/cdn/datebox/latest/jquery.mobile.datebox.min.js

      @model System.DateTime
      @{
          var id = this.ViewData.TemplateInfo.GetFullHtmlFieldId("");
          var name = this.ViewData.TemplateInfo.GetFullHtmlFieldName("");
      
      
          <input name="@name" id="@id" type="date" data-role="datebox" data-options='{"mode": "flipbox","noButtonFocusMode": true, "dateFormat": "DD/mm/YYYY"}' value="@Model.Date.ToShortDateString()">
          }
      

      如果您使用 dateFormat,它应该适合您的需要。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-17
        • 2017-05-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多