C# 单击按钮时阻止表单提交
我在表单中有一个按钮。 问题是,当我单击它时,它不会执行服务器端功能。 在执行服务器功能和客户端验证时,是否可以防止表单提交 提前谢谢 html(表单内部) c#C# 单击按钮时阻止表单提交,c#,jquery,html,C#,Jquery,Html,我在表单中有一个按钮。 问题是,当我单击它时,它不会执行服务器端功能。 在执行服务器功能和客户端验证时,是否可以防止表单提交 提前谢谢 html(表单内部) c# 我相信通过将event.preventDefault()绑定到表单的submit事件,而不是按钮的click事件,您可以实现您想要的 为按钮设置一个onclick,以调用提交表单的函数 验证 设置SubmitForm()函数以提交表单,然后将函数绑定到提交事件: 函数SubmitForm(){ $('表格1')。提交(); } $(函
我相信通过将
event.preventDefault()
绑定到表单的submit
事件,而不是按钮的click
事件,您可以实现您想要的
onclick
,以调用提交表单的函数
验证
SubmitForm()
函数以提交表单,然后将函数绑定到提交事件:是否可以阻止表单提交
是
您只需在jquery上单击按钮即可编写e.preventDefault()/returnfalse()
但是,在使用服务器端函数时,
我不明白这一点问题出在您的javascript代码中,在您的情况下,总是调用return false
,而您应该仅在验证失败时调用它:
$('#v4').click(function (event) {
if (validation()) {
slideToStep(5);
} else{
return false;
}
});
编辑:
基本上,如果你想调用button_click事件,你需要提交表单,在你的例子中,我将使用WebMethod
调用ajax的服务器端验证函数。大概是这样的:
c#:
jquery:
$(document).ready(function() {
$("#v4").click(function() {
$.ajax({
type: "POST",
url: "Default.aspx/Validate",
data: "{params: 5 }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg.d);
}
});
备选方案:
您也可以使用自定义验证器,ASP将为您做所有jQuery的东西。如果您不想提交表单,仍然执行服务器功能,请考虑使用Ajax。由于处理程序返回false,它将永远不会提交表单并执行服务器函数。或者在验证失败时返回false。每次都返回false。它如何执行服务器代码。您正在使用而不是,对吗?两种方法都尝试了,但都没有成功返回false
执行相同的操作。它没有为OP提交表单。请完整阅读问题。如果我执行preventDefault(),服务器将不会执行v4\u Click(),因为preventDefault()也将执行Prevent。请尝试我更新的答案。我认为将preventDefault绑定到submit事件将允许调用onserverclick函数。解决方案没有阻止表单提交,服务器也没有执行v4_单击return false
。它没有为OP提交表单。请完整阅读问题。我不想提交表单,因此我需要在不阻止按钮在服务器上单击操作的情况下阻止表单。几乎可以得到它,除了ajax之外,它总是处于错误警报状态。
protected void v4_Click(object sender, System.EventArgs e)
{
System.Diagnostics.Debug.Write("test");
}
function SubmitForm() {
$('#form1').submit();
}
$(function () {
$('#form1').submit(function (event) {
if (validation()) {
slideToStep(5);
}
else
{
//Validation Failed, prevent form from submitting.
event.preventDefault();
}
});
});
$('#v4').click(function (event) {
if (validation()) {
slideToStep(5);
} else{
return false;
}
});
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string Validate(string params)
{
// your validations
return "Received : " + params;
}
$(document).ready(function() {
$("#v4").click(function() {
$.ajax({
type: "POST",
url: "Default.aspx/Validate",
data: "{params: 5 }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg.d);
}
});