1

嘿,我正在从 PHP 设计的网站设计 ASP.net 中的网站。他们通过 JavaScript 进行表单检查,如果通过验证,则通过 Ajax 提交所有数据。

是否可以通过后面的代码从提交按钮触发一段 JavaScript,并在我处理回发以保存数据之前读取返回的值,或者在用户更正 JavaScript 指示的字段之前什么都不做?

4

3 回答 3

1

在 .NET 中,按钮控件有一个 onClientClick,您可以在其中输入任何 js 函数或代码。注意,添加return false;在上述代码之后,否则.net 将触发完整的回发。

这可能很老套,但您也可以考虑为此使用更新面板;只是一个想法。

于 2012-10-05T20:26:43.323 回答
1

是的。您可以通过多种方式做到这一点。我更喜欢处理程序,因为它们超轻量级。虽然,拉取他们的 Javascript 并使用 .NET 的验证器可能会减少您的工作量。这是一个示例处理程序,但以防万一:

public class CheckData : IHttpHandler
{
    public bool IsReusable
    {
        get { return false; }
    }
    public void ProcessRequest(HttpContext context)
    {
        string sInputData = context.Request["input_post_var"];
        context.Response.ContentType = "text/plain";
        if (!String.IsNullOrEmpty(sInputData))
            context.Response.Write("1");
        else
            context.Response.Write("0");
    }
}

您可以通过右键单击解决方案中的文件夹,添加新项目...,找到通用处理程序来创建其中之一。

您也可以使用 AJAX.NET,但实际上整个框架非常臃肿,如果可以的话,我会避免使用它。不过,这只是偏好。

于 2012-10-05T20:28:19.720 回答
1

如果您在 javascript 中进行验证,我会制作一个隐藏的提交按钮,如果验证通过,则该按钮会被 javascript 按钮单击:

<input type="button" value="validate" onclick="Validate()" />

<asp:Button ID="aspButton" class="aspButton" OnClick="CodeBehindMethod" style="display: none;" />


<script>
function Validate() {
    //if validation passes
    $(".aspButton").click(); //This is the reason for the class on this button, since                       
                             //asp buttons have huge long stupid id names
    //else do some kind of error notification
}

</script>

如果您在后面的代码中进行验证,那么为什么不使用提交按钮的回发呢?

于 2012-10-05T20:31:36.507 回答