除了我在网上发现的东西之外,我必须有更好的方法来做到这一点。
<script type="text/javascript">
function Sub()
{
if (document.getElementById("DatePicker1").Text == "")
alert("Select a date");
else
Submit(); //this is the c# function
}
</script>
<asp:Button ID="Button1" runat="server" OnClientClick="Sub()" PostBackUrl="~/Default.aspx" Text="Submit" />
为什么如果我将其更改为OnClick =“提交”,我可以这样做,但尝试在客户端验证之后这样做很难!很沮丧。我是一个非常有经验的程序员,但对于网络相关的东西是新的,所以这一点,而客户端与服务器废话一直在阻碍。
请让我知道任何好的解决方案。我宁愿不使用jQuery,因为我想稍后单独研究它。谢谢。
答案 0 :(得分:3)
您实际上不需要从Javascript中调用Web方法。您可以尝试以下方法:
按下OnClick
和OnClientClick
。在OnClientClick
执行return Sub()
<asp:Button ID="Button1" runat="server" OnClientClick="return Sub()"
OnClick="Button1_Click" PostBackUrl="~/Default.aspx" Text="Submit" />
在Button1_Click
事件中,您可以调用方法Submit
在您的Javascript中,根据验证返回true或false。
<script type="text/javascript">
function Sub()
{
if (document.getElementById("DatePicker1").Text == "")
{
alert("Select a date");
return false;
}
else
{
return true;
}
}
</script>
这将防止OnClick
事件在验证失败的情况下被触发。
答案 1 :(得分:1)
OnClick将在服务器端工作,OnClientClick将在客户端执行,然后控制权传递给服务器。
如果客户端代码返回TRUE,那么它将转到服务器。如果它用于验证并返回false,则不会转到服务器。