在Aspx页面中,我有以下代码:
<input id="btnSubmit" type="button" runat="server" value="Submit" onserverclick="btnSubmit_Click">
在后面的代码中,在页面加载时,我在上面的提交按钮中添加了一个属性:
btnSubmit.Attributes.Add("onclick", "if(Datecheck())return true;");
此处DateCheck()
是一个javascript函数,用于在提交之前检查开始日期和结束日期文本框是否为空:
function Datecheck()
{
var startDate = document.getElementById('<%= txtStartDate.ClientID%>').value;
var endDate = document.getElementById('<%= txtEndDate.ClientID%>').value;
if (startDate != "" && endDate != "")
{
return true;
}
else
{
alert("Please enter the mandatory fields");
return false;
}
}
此处StartDate和EndDate文本框具有DatePicker功能,该功能在选择日期时执行自动回发。因此,回发发生两次(首先选择StartDate,第二次选择结束日期),此后当我想提交时,不会发生任何操作。 以下是通过Firebug查看时提交按钮的HTML代码段:
<input id="ctl00_ContentPlaceHolder1_btnSubmit" type="button" value="Submit" name="ctl00$ContentPlaceHolder1$btnSubmit" onclick="if(Datecheck())return true; if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(''); __doPostBack('ctl00$ContentPlaceHolder1$btnSubmit','')">
但是,如果我删除了onclick事件中的if(Datecheck())return true;
,则提交按钮会起作用。
请帮我解决这个问题。