//界面绑定 @Html.TextBoxFor(model => model.BuyDate, new { @class = "datetype", @type = "text" }) //使用jquery日期控件 $(function () { $('#BuyDate').datepicker(); })
这种情况日期能正常绑定显示,但是日期控件无法使用,后来我把@type="text"改成@type="date" 日期控件就可以使用了,但是却不能绑定值,按F12跟踪发现代码是这样的
<input class="datetype" data-val="true" data-val-date="字段 购买日期 必须是日期。" data-val-required="购买日期 字段是必需的。" id="BuyDate" name="BuyDate" type="date" value="2015/1/14 0:00:00">
value是有值的,但是无法在界面上显示,不知道是什么原因,请指教。
@type="text"改成@type="date"就是要使用html5来实现了,这种有点不靠谱,因为谷歌浏览器虽然支持,但是ie就不支持了,你把val设成2015-01-06这种格式可能就有效了。
type="text"的时候你看看你有没有引用jquery ui 这个脚本文件
jquery ui脚本文件肯定导入啦,如果你说type="date"这种ie不支持,那jquery 的datepicker是怎样利用mvc能绑定呢。我只要改成type="text"就不支持了
@如果没有如果: mvc只不过是给你生成里一个input标签而已,而你要做的就是将这个标签变成一个可以选择时间的控件
你改成type="text"就不支持了说明是脚本出错了,你要在浏览器端调试,和mvc是没有关系的
@刘宏玺: 你现在用my97实现了?
@刘宏玺: 还没有,正常的,你们一般用什么来实现?
@如果没有如果: 我都是用my97,支持国人!还是汉语的!
@刘宏玺: 那我也改成这个吧,有具例的示例代码么,参照一下,没有就算了,也差不多能弄出来了,谢谢
@如果没有如果: http://www.my97.net/dp/demo/index.htm
这种方法是可行的,但是就是方法太旧了点,绑定的方式也很麻烦,我希望是用mode的值直接能绑定,像Html.EditorFor这样的,感谢
试试把value格式化了输出 value="2015-1-16"
不是这个问题,应该是生成的html标记有问题,后来我重写HtmlHelper方法,返回的是这样的,就能正常显示了
<input type="date" id="BuyDate" name="BuyDate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd'})" class="datetype" value="2015-01-17">