我有一个datepicker,我想要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'); }
);
});
但它给我一个错误。任何人都可以帮我如何写如果条件设置datepicker attribue
$("defaultDate: parseInt(location.search.indexOf('did=')) >= 0 ? getDefaultDateVal() : new Date(),").datepicker
?
答案 0 :(得分:1)
我无法在代码中获得getDefaultDateVal()
功能。但希望这将在你的代码中随处可见。请尝试以下代码:
defaultDate: ((parseInt(location.search.indexOf('did=')) >= 0) ? getDefaultDateVal() : new Date()),
答案 1 :(得分:1)
你想做什么?
<% if (parseInt(location.search.indexOf('did=')) >= 0) { %>
defaultDate: getDefaultDateVal(),
<% } %>
parseInt
显示javascript但<%
显示了asp
为什么不在服务器端执行此操作?试试这个
<% if (System.Web.HttpContext.Current.Request.QueryString.ToString().Contains("did=")) { %>
defaultDate: getDefaultDateVal(),
<% } %>
答案 2 :(得分:0)
我认为,您正在编写内联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>";
}
您必须注册此程序集才能使用文字:
<%@ Register Assembly="System.Web" Namespace="System.Web.UI" TagPrefix="asp" %>