我的Default.aspx页面上有许多文本框,类似于下面的内容。
<asp:TextBox ID="myTextbox" runat="server"></asp:TextBox>
当用户单击要提交的按钮时,将执行以下javascript:
$(function () {
$('#<%= myButton.ClientID %>').click(function (clickToExecuteMyMethod) {
var userWantsToSubmit = window.confirm("Are you sure you want to press the button?");
if (userWantsToSubmit) {
$.blockUI({ overlayCSS: { backgroundColor: '#00f' }, message: '<h1>Please wait a while...</h1>' });
}
if (!userWantsToSubmit) {
clickToExecuteMyMethod.preventDefault();
}
});
});
但我还想使用jquery来验证在按下相同的按钮后,某些内容(任何内容)已输入myTextbox。如果它成功验证,那么我希望其他javascript触发。
答案 0 :(得分:2)
对于检查单个文本框的简单情况,只需使用.val()
$('#<%= myButton.ClientID %>').click(function (clickToExecuteMyMethod) {
var userWantsToSubmit = window.confirm("Are you sure you want to press the button?");
// Check to see if the textbox is empty
var isValid = $('#<%= myTextbox.ClientID %>').val() != "";
if (userWantsToSubmit && isValid) {
$.blockUI({ overlayCSS: { backgroundColor: '#00f' }, message: '<h1>Please wait a while...</h1>' });
} else {
clickToExecuteMyMethod.preventDefault();
}
});
但这不是一个非常可扩展的解决方案。我建议您查看类似jquery validation plugin的内容,或尝试使用Google搜索其他验证解决方案,周围有很多。
答案 1 :(得分:0)
如果您正在使用任何ASP.Net页面验证控件,则只需调用客户端验证例程:
$(function () {
$('#<%= myButton.ClientID %>').click(function (clickToExecuteMyMethod) {
var userWantsToSubmit = window.confirm("Are you sure you want to press the button?");
Page_ClientValidate('validationGroup'); //validate using ASP.Net validator controls.
if (userWantsToSubmit && Page_IsValid) {
$.blockUI({
"overlayCSS": {
"backgroundColor": "#00f"
},
"message": "<h1>Please wait a while...</h1>"
});
}
if (!userWantsToSubmit || !Page_IsValid) {
clickToExecuteMyMethod.preventDefault();
}
return Page_IsValid;
});
});