如何先调用客户端脚本函数,然后再调用服务器端按钮单击事件
How to call a clientside script function first and then call a server side button click event?
在这里,我尝试使用 jquery 对文本框进行电子邮件验证,并在 onclientclick 上调用该函数,我也有一个按钮单击事件。但是按钮单击事件在 javascript 函数之前触发。我需要在触发按钮单击事件之前验证文本框。这是我的代码
$(document).ready(function () {
$("#MainContent_txtEmail").blur(function () {
ValidateEmail();
});
function ValidateEmail()
{
var emailReg = /^(['w-'.]+@(['w-]+'.)+['w-]{2,4})?$/;
var emailaddress = $("#MainContent_txtEmail").val();
if (!emailReg.test(emailaddress)) {
$("#emailspan").html('<font color="red" size=2px;>Please enter valid Email address</font>');
return false;
}
else {
$("#emailspan").html('<font color="red"></font>');
return true;
}
}
});
和
<asp:TextBox ID="txtEmail" name="txtEmail" runat="server" CausesValidation="false" TextMode="Email">
</asp:TextBox><span id="emailspan" value="0"></span>
<asp:Button ID="btnsubmit" CssClass="btn pdf-submit" runat="server" Text="SEND" OnClientClick="return ValidateEmail();" OnClick="btnsubmit_Click"/>
和我的活动
protected void btnsubmit_Click(object sender, EventArgs e)
{
SendSmtpEmail(txtEmail.Text, "noreply@a.net", "test", "test-template");
}
任何建议??
嘿 在你的代码中 ::
`$("#MainContent_txtEmail").blur(function ()
为什么要调用函数,您可能需要将其更改为
$("#txtEmail").blur(function ()`
我想这会起作用!!
您需要删除 onClick for btnsubmit
<asp:Button ID="btnsubmit" CssClass="btn pdf-submit" runat="server" Text="SEND" OnClientClick="return ValidateEmailThenSubmit();" />
然后在验证后在代码中手动单击 btnsubmit。
function ValidateEmailThenSubmit()
{
ValidateEmail();
$("#" + <%= btnsubmit.ClientID %>).click();
}
为什么要使用 javascript?只需使用 asp.net RegularExpressionValidator,如下所示:
<asp:RegularExpressionValidator ID="regexEmailValid" runat="server" ValidationExpression="'w+([-+.]'w+)*@'w+([-.]'w+)*'.'w+([-.]'w+)*" ControlToValidate="tbEmail" ErrorMessage="Invalid Email Format"></asp:RegularExpressionValidator>
更多信息在这里 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.regularexpressionvalidator.aspx
ValidateEmail() 方法在
作为参数传递给 $.ready() 方法的匿名方法中声明时不可见。
在 $(document).ready 之外获取 ValidateEmail 方法,它应该可以工作。
相关文章:
- 在Android中从signalR调用服务器端功能
- 从javascript调用服务器端的下拉列表onchange函数
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- 如何在 asp.net 中从 javascript 调用服务器端代码
- 如何使用javascript代码调用服务器端函数;标记函数“>
- 如何在 javascript 函数中调用服务器端函数
- 在侧边栏 GAS 中调用服务器端脚本
- 从 js 调用服务器端 vb 代码(asp classic)
- 通过互联网从浏览器调用服务器端javascript
- 想要从Android应用程序调用服务器端javascript
- 调用服务器端从 JavaScript 继承了 C# Web 方法
- 如何先调用客户端脚本函数,然后再调用服务器端按钮单击事件
- 从网页调用服务器端C++
- 如何在 Node.js 中从客户端调用服务器端函数(例如.html单击按钮)
- 在 MVC3 中从客户端调用服务器端函数
- 从javascript asp.net调用服务器端函数
- 使用Javascript调用服务器端函数
- 使用隐藏按钮从JS调用服务器端函数
- 使用AJAX调用服务器端方法
- 如何在不调用服务器端的情况下从JqGrid导出数据到excel