我有2个输入框用于输入开始日期和结束日期。我需要验证开始日期是否早于结束日期。我有以下代码来验证,但代码似乎没有触发时我附加了datepicker控件的onselect事件。有人可以告诉我我做错了吗?
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$(".date").datepicker({
onSelect:function(dateText,inst){
var startDate=new Date($("#_createDateFromInput").val());
var endDate=new Date($("#_createDateToInput").val());
if(startDate!=""&&endDate!="")
{
if(startDate>endDate)
{
alert("End date cannot be earlier than start date");
}
}
}
});});
</script>
谢谢!
上面的标记是(这是在asp.net中):
<label>Date From</label>
<input class="date" runat="server" id="_createDateFromInput" />
<label id="to">To</label>
<input class="date" runat="server" id="_createDateToInput" />
我相信El Ronnoco已经锁定了某些东西......我注意到当我删除runat =“server”标签时,我能够解除偶数...但是现在我面对另一个
在回发期间(即当用户最终提交时)检索值的问题..任何人有想法吗?
答案 0 :(得分:0)
实现此目的的一种更简单的方法是防止用户为endDate选择较早的日期。
这可以通过使用Datepicker插件的minDate选项
来完成$("#startDate").datepicker({
onSelect:function(dateText,inst){
$( "#endDate" ).datepicker( "option", "minDate", new Date(dateText) );
}
});
答案 1 :(得分:0)
我在jQuery UI示例页面中使用此代码:http://jqueryui.com/demos/datepicker/#event-search
基本上它需要2个输入,使它们成为日期选择器,然后选择限制注意力和最大日期。这是一段非常聪明的代码。
$(function() {
var dates = $( "#from, #to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
onSelect: function( selectedDate ) {
var option = this.id == "from" ? "minDate" : "maxDate",
instance = $( this ).data( "datepicker" );
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
dates.not( this ).datepicker( "option", option, date );
}
});
});
答案 2 :(得分:0)
感谢大家的所有输入。我使用了很多你写下来的东西。由于某种原因,我有能力使runat="server"
属性导致jquery的各种问题。我不得不删除标记并使用页面中固有的请求对象访问它。对于那些对语法感兴趣的人:
request.form["startDate"].tostring();
其中startdate是该字段的属性名称值。