Javascript 防止在按钮单击和多客户端功能上回发
我有一个asp.net按钮来更新数据库Javascript 防止在按钮单击和多客户端功能上回发,javascript,jquery,asp.net,json,postback,Javascript,Jquery,Asp.net,Json,Postback,我有一个asp.net按钮来更新数据库 <asp:Button ID="btnSave" runat="server" Text="SaveChanges" OnClick="btnSave_Click" CssClass="saveButton" ValidationGroup="answer" OnClientClick="return ValidateUserNameBeforeSubmitting();" /> <script type="text/j
<asp:Button ID="btnSave" runat="server" Text="SaveChanges" OnClick="btnSave_Click"
CssClass="saveButton" ValidationGroup="answer" OnClientClick="return ValidateUserNameBeforeSubmitting();" />
<script type="text/javascript">
$(document).ready(function () {
$("#<%=TextUserName.ClientID%>").blur(function () {
ValidateUserNameAfterBlur();
});
});
function ValidateUserName() {
var returnValue;
$.ajax({ type: "POST",
url: "../UserNameWebService.asmx/ValidateUserName",
data: JSON.stringify({ strUsername: $("#<%=TextUserName.ClientID%>").val() }),
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (data) {
returnValue=data.d;
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
return returnValue;
}
// to prevent postback when click save button.
function ValidateUserNameBeforeSubmitting() {
var isValid = ValidateUserName();
return isValid;
}
function ValidateUserNameAfterBlur() {
var isValid = ValidateUserName();
$('#TextUserNameError').toggle(!isValid);
}
</script>
$(文档).ready(函数(){
$(“#”)模糊(函数(){
ValidateUserNameAfterBlur();
});
});
函数ValidateUserName(){
风险价值;
$.ajax({type:“POST”,
url:“../UserNameWebService.asmx/ValidateUserName”,
数据:JSON.stringify({strUsername:$(“#”)val()}),
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
async:false,
成功:功能(数据){
returnValue=data.d;
},
错误:函数(xhr、ajaxOptions、thrownError){
警报(xhr.状态);
警报(thrownError);
}
});
返回值;
}
//单击“保存”按钮时防止回发。
函数ValidateUserNameBeforeSubmitting(){
var isValid=ValidateUserName();
返回有效;
}
函数ValidateUserNameAfterBlur(){
var isValid=ValidateUserName();
$('#TextUserNameError')。切换(!isValid);
}
该函数用于验证用户名的文本框。但我有几个文本框需要验证。
每一个都将显示不同的错误。我可以在按钮上有多个客户端呼叫吗
谢谢。当然,您可以拥有多个客户端功能:
$("#<%=TextUserName.ClientID%>").blur(function () {
ValidateUserNameAfterBlur();
ValidatePasswordAfterBlur();
ValidateFoo();
PhoneYourWife();
...
});
$(“#”)模糊(函数(){
ValidateUserNameAfterBlur();
ValidatePasswordAfterBlur();
validatefo();
给你妻子打电话;
...
});
如果您只想在所有文件都有效时提交:
$("#<%=btnSave.ClientID%>").click(function () {
if (ValidateUserNameAfterBlur() &&
ValidatePasswordAfterBlur() &&
ValidateFoo() &&
PhoneYourWife())
submitTheData();
});
$(“#”)点击(函数(){
if(ValidateUserNameAfterBlur()&&
ValidatePasswordAfterBlur()&&
validatefo()&&
打电话给你妻子()
提交数据();
});
我可以在按钮上进行多个客户端调用是什么意思?我想要类似OnClientClick=“return function1()、return function2()”等或OnClientClick1=。。。OnClientClick2=…这只是文本用户名文本框上的模糊,但我还有其他文本框需要模糊。@Love。好的。附加那些文本框模糊回调,问题在哪里?在提交之前,ValidateUserName如何?我需要几个类似的函数来处理不同的文本框?我们怎样才能把它们放在一起?@爱。我真的很难理解你的需要,你是对的。但是我提交的数据是在服务器端的代码隐藏中。可能是哪种代码?