我有一个日期拾取器,我想要defaultDate属性,如果它将满足我的条件。下面是代码
$(function () {
jQuery('#datepicker').datepicker({
<% if (parseInt(location.search.indexOf('did=')) >= 0) { %>
defaultDate: getDefaultDateVal(),
<% } %>
// defaultDate: parseInt(location.search.indexOf('did=')) >= 0 ? getDefaultDateVal() : new Date(),
inline: true,
maxDate: '+10D',
onLoad:function(){alert("hello");},
onSelect: function(date) {
//alert('Diet plan for ' + date);
var d = new Date("January 01, 1970 00:00:00");
var d2 = new Date(date);
d.setMonth(d.getMonth());
var theMonth;
theMonth = d.toString();
theMonth = theMonth.substr(4, 3);
d2.setMonth(d2.getMonth());
var theMonth2;
theMonth2 = d2.toString();
theMonth2 = theMonth2.substr(4, 3);
var firstDay = d.getDate();
var secondDay = d2.getDate();
var firstMonth = theMonth;
var secondMonth = theMonth2;
var firstYear = d.getFullYear();
var secondYear = d2.getFullYear();
var firstDate = new Date(firstDay + " " + firstMonth + " " + firstYear);
var secondDate = new Date(secondDay + " " + secondMonth + " " + secondYear);
var daysDiff = (secondDate.valueOf() - firstDate.valueOf());
daysDiff = Math.floor(Math.abs((((daysDiff / 1000) / 60) / 60) / 24));
//alert(daysDiff);
self.location.href = './Goal.aspx?did=' + daysDiff + '';
//filterGetMidHead(date);
//wait(500);
// alert(date);
var startdate = ((d2.getDate()).toString().length == 1) ? "0" + (d2.getDate()).toString() : (d2.getDate()).toString();
var enddate = new Date();
enddate.setDate(d2.getDate() + 7);
var enddate1 = ((enddate.getDate()).toString().length == 1) ? "0" + (enddate.getDate()).toString() : (enddate.getDate()).toString();
// alert(enddate1 + "hello");
var month2 = ((d2.getMonth() + 1).toString().length == 1) ? "0" + (d2.getMonth() + 1).toString() : (d2.getMonth() + 1).toString();
var endatemonth = ((enddate.getMonth() + 1).toString().length == 1) ? "0" + (enddate.getMonth() + 1).toString() : (enddate.getMonth() + 1).toString();
//alert(new Date().setDate(d2.getDate() + 7));
document.getElementById('<%=lblHeaderDate1.ClientID %>').innerHTML = startdate + "/" + month2 + "/" + d2.getFullYear();
document.getElementById('<%=lblHeaderDate2.ClientID %>').innerHTML = enddate1 + "/" + endatemonth + "/" + enddate.getFullYear();
// testnew();
}
});
<% if (Convert.ToString(Session["LanguageID"])=="IS")
{ %>
jQuery("#datepicker").datepicker(jQuery.datepicker.regional['is']);
<% } %>
//jQuery("#datepicker").datepicker(jQuery.datepicker.regional['is']);
//hover states on the static widgets
jQuery('#dialog_link, ul#icons li').hover(
function () { jQuery(this).addClass('ui-state-hover'); },
function () { jQuery(this).removeClass('ui-state-hover'); }
);
});
但是它显示了一个错误。谁能帮助我如何写如果条件设置日期拾取器属性$("defaultDate: parseInt(location.search.indexOf('did=')) >= 0 ? getDefaultDateVal() : new Date(),").datepicker
?
你想做什么?
<% if (parseInt(location.search.indexOf('did=')) >= 0) { %>
defaultDate: getDefaultDateVal(),
<% } %>
parseInt
显示javascript,但<%
显示asp的服务器端代码块
为什么不只在服务器端做呢?试试这个
<% if (System.Web.HttpContext.Current.Request.QueryString.ToString().Contains("did=")) { %>
defaultDate: getDefaultDateVal(),
<% } %>
我无法在您的代码中获得getDefaultDateVal()
函数。但希望这将在您的代码中的任何地方。所以试试下面的代码:
defaultDate: ((parseInt(location.search.indexOf('did=')) >= 0) ? getDefaultDateVal() : new Date()),
我认为,你正在编写内联javascript,因为你在javascript中编写c#代码,并且你正在根据会话ID制作条件。这是不好的做法,我认为,因为你的javascript不会被缓存,你是混合客户端和服务器端代码。我建议制作两个不同的javascript文件,并将c#代码包含到页面中。在这种情况下,If语句可以在Page_Load中,javascript在一个单独的文件中。
在这种情况下,浏览器可以缓存它
的例子:
将此标签放入aspx:
<asp:Literal runat="server" ID="lscript"/>
c# page load:
if (Session["LanguageID"].ToString()=="IS")
{
lscript.Text = "<script src=/js/CondFirst.js></script>";
}
else
{
lscript.Text = "<script src=/js/CondSecond.js></script>";
}
并且您必须注册此程序集以使用literal:
<%@ Register Assembly="System.Web" Namespace="System.Web.UI" TagPrefix="asp" %>