Vin*_* V. 25 jquery jquery-ui datetimepicker asp.net-mvc-3
当使用jQuery UI Datepicker时,我们在Google Chrome中使用时会遇到问题:当我们输入日期高于12的日期时,它不接受它作为有效日期,这是因为chrome认为dateformat是mm/dd/YYYY.我们尝试通过添加代码来尝试将日期设置强制为dd/mm/yyyy来解决此问题
$('.date').datepicker({ dateFormat: "dd/mm/yy" });
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题,所以我们的datepicker将接受dd/mm/yyyy值?我们在Google Chrome中只有这个问题,datefix适用于firefox,即&safari.我们在这个项目中使用ASPX和MVC3.
如果有人能解决我们的问题,那就太好了
谢谢
use*_*138 46
我遇到了同样的问题,并且与所有基于Webkit的Web浏览器有关.如果设置大写M,则文本框会显示带字母的蛾.对我来说最好的解决方案是从jquery.validate.js覆盖验证日期函数
创建jquery.validate.date.js并确保在jquery.validate.js之后加载它
将以下代码添加到jquery.validate.date.js
$(function() {
$.validator.methods.date = function (value, element) {
if ($.browser.webkit) {
//ES - Chrome does not use the locale when new Date objects instantiated:
var d = new Date();
return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value)));
}
else {
return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
}
};
});
Run Code Online (Sandbox Code Playgroud)
Cht*_*lek 26
user1011138解决方案对我不起作用,因为.toLocaleDateString(value)不解析value字符串
这里是我想出的解决方案=>在jquery.validate.js中找到这个函数定义:"date:function(value,element)"并用以下代码替换代码:
// http://docs.jquery.com/Plugins/Validation/Methods/date
date: function (value, element) {
var d = value.split("/");
return this.optional(element) || !/Invalid|NaN/.test(new Date((/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())) ? d[1] + "/" + d[0] + "/" + d[2] : value));
},
Run Code Online (Sandbox Code Playgroud)
上述解决方案不起作用,因为不推荐使用 jquery 浏览器检查抛出 jquery.validate.min.js Uncaught TypeError: Cannot read property 'webkit' of undefined. Exception occurred when checking element DateOfBirth, check the 'date'
在我的项目中,我将momentjs与bootstrap datetimepicker一起使用,因此此解决方案非常有效:
$(function () {
$.validator.methods.date = function (value, element) {
return this.optional(element) || moment(value, 'DD/MM/YYYY').isValid();
};
});
Run Code Online (Sandbox Code Playgroud)
加载后立即调用 jquery.validate()
您必须使用“en-GB”日期验证覆盖默认的“en-US”日期验证。
解决方案:
在您的项目中添加一个“jquery.validate.date.js”文件并在其中添加以下代码:
//To Fix jQuery date format 'en-GB' validation problem in Chrome
$(function () {
$.validator.addMethod(
"date",
function (value, element) {
var bits = value.match(/([0-9]+)/gi), str;
if (!bits)
return this.optional(element) || false;
str = bits[1] + '/' + bits[0] + '/' + bits[2];
return this.optional(element) || !/Invalid|NaN/.test(new Date(str));
},
"Please enter date in valid format [dd/mm/yyyy]"
);
});
Run Code Online (Sandbox Code Playgroud)
并确保它在“jquery.validate.min.js”之后加载:
<script type="text/javascript" src="/Scripts/jquery-3.1.0.min.js"></script>
<script type="text/javascript" src="/Scripts/jquery.validate.min.js"></script>
<script type="text/javascript" src="/Scripts/jquery.validate.date.js"></script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21026 次 |
| 最近记录: |