1

海我正在开发应用程序 django,我想在其中验证 fromdate 小于 todate。我正在使用以下代码,但它不起作用

表格.py

类 SearchFilterForm(Form):

fromdate = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'dd/mm/yy','class':'datefield','readonly':'readonly'}))
todate = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'dd/mm/yy','class':'datefield','readonly':'readonly'}))

javascript:

function comparedate(){
        var fromdate = document.getElementById("id_fromdate");
        var todate = document.getElementById("id_todate");
        if(fromdate<todate){
            alert("Start date should be less than end date");
        return false;
    }
}

我从日期选择器获取输入,格式为 yy-mm-dd。上面的代码在控制台中没有给出任何错误,但它不起作用。

4

3 回答 3

1

document.getElementById("id_fromdate")您正在检索节点。你需要的是价值

var fromdate = document.getElementById("id_fromdate").value;
var todate = document.getElementById("id_todate").value;

然后,您需要比较日期,而不仅仅是.value要检索的字符串。

于 2013-06-20T14:46:59.437 回答
1
var fromdate = document.getElementById("id_fromdate").value;
var todate = document.getElementById("id_todate").value;

您需要转换日期值字符串日期对象,然后您可以比较两个日期对象

http://www.w3schools.com/jsref/jsref_obj_date.asp

Ex. var d1 = new Date();

var d2 = new Date();
if(+d1>+d2)
于 2013-06-20T14:52:48.740 回答
0

试试这个

if (Date.parse(fromDate) > Date.parse(toDate)) {
alert("Invalid Date Range!\nStart Date cannot be after End Date!")
return false;
}
于 2016-02-10T13:01:51.430 回答