日期格式为“mm / dd / yyyy”。它没有给我正确的结果。这只是验证月份。
<input type="text" name="durationstart" id="durationstart" value="">
<input type="text" name="durationend" id="durationend" value="" onclick="return chk_val12()" >
<script>
function chk_val12()
{
var durationstart = document.getElementById('durationstart').value;
var durationend = document.getElementById('durationend').value;
if(durationstart>durationend)
{
alert("Please enter proper duration range");
return false;
}
else
{
return true;
}
}
</script>
答案 0 :(得分:1)
您无法像这样比较验证日期。
Text box
包含 string
dataType的值。那么以下代码的作用是
if(durationstart>durationend) // Invalid
而是将其解析为date
对象。
<强>更新强>
虽然它有效但是浏览器兼容性很有可能所以我在这里编写了完整的日期解析
function chk_val12() {
var durationstart = document.getElementById('durationstart').value;
var durationend = document.getElementById('durationend').value;
var st = durationstart.split("/");
var en = durationend.split("/");
var startDate = new Date(st[2], (+st[0] - 1), st[1]);
var endDate = new Date(en[2], (+en[0] - 1), en[1]);
if (startDate > endDate) {
alert("Please enter proper duration range");
return false;
} else {
return true;
}
}
仅供参考:确保用户输入正确的日期格式。
它做什么?
1)拆分你喜欢的dateString
var st = durationstart.split("/");
2)将其解析为new Date(YYYY, MM, DD)
var startDate = new Date(st[2], (+st[0] - 1), st[1]);
答案 1 :(得分:1)
您需要使用Date
对象的parse
方法将输入字符串转换为毫秒,然后比较2:
var durationstart = Date.parse( document.getElementById('durationstart').value );
var durationend = Date.parse( document.getElementById('durationend').value );
这取决于以Date.parse
方法所期望的方式输入的输入 - 采用Wed, 3 Feb 2014
或2014-02-03
标准后的格式。
如果用户可能使用其他输入格式,您可能希望使用Sugar等插件来解析更广泛的可能格式。 Sugar添加Date.create( inputString )
方法,接受the following formats。
现代浏览器的另一种选择是使用date
类型的输入而不是text
,这样您就可以直接提取日期值,而无需担心用户输入不可解析的格式。使用此方法,您可以将HTML更改为:
<input type="date" name="durationstart" id="durationstart" value="">
<input type="date" name="durationend" id="durationend" value="" onclick="return chk_val12()" >
...并使用原生valueAsDate
方法提取值,如下所示:
var durationstart = document.getElementById('durationstart').valueAsDate;
var durationend = document.getElementById('durationend').valueAsDate;
答案 2 :(得分:0)
试试这个
function dateCheck() {
fDate = Date.parse(document.getElementById("durationstart").value);
lDate = Date.parse(document.getElementById("durationend").value);
if(fDate >lDate )
{
alert("Please enter proper duration range");
return false;
}
else
{
return true;
}
}