【问题标题】:postback and validation in asp.net and javascriptasp.net 和 javascript 中的回发和验证
【发布时间】:2011-09-02 09:31:24
【问题描述】:

我有这么多

HTML

<asp:Button ID="btnSaveContest" runat="server" Text="Save &amp; Publish Contest" OnClientClick=" ValidateCreateContest();" ValidationGroup="ContestAdd" OnClick="btnSaveContest_Click" CausesValidation="false"/>

JavaScript

<script type="text/javascript">
    function ValidateCreateContest() {
        Page_ClientValidate();
        if (Page_IsValid) {
            alert('page is valid');
            $('#<%=btnSaveContest.ClientID%>').attr('disabled', 'disabled');
            __doPostBack('<%=btnSaveContest.ClientID%>', '')
            return true;
        }
        else {
            alert('not valid');      
            return false;
        }     

    }
</script>

它会回传到页面,但不会转到服务器端函数 btnSaveContest_Click。为什么?

【问题讨论】:

  • 我在做与此类似的事情时遇到了一些麻烦。我发现的一种解决方案是执行OnClientClick="ValidateCreateContest(); return isFormValid;",然后在ValidateCreateContest(); 函数中根据需要执行isFormValid = trueisFormValid = false,其中isFormValid 是一个全局变量。
  • @Oliver :- 它进行了回发,但没有转到 btnSaveContest_Click 函数... ???
  • 首先使用错误控制台检查页面中是否有任何javascript错误。如果您使用断点检查它,则停止项目进行干净的构建,然后再次重新构建并运行项目,看看它是否有帮助,如果这不起作用,请尝试更改默认浏览器。

标签: javascript asp.net validation postback


【解决方案1】:

不要使用ClientID,使用UniqueID

    if (Page_IsValid) {
        alert('page is valid');
        $('#<%=btnSaveContest.ClientID%>').attr('disabled', 'disabled');
        __doPostBack('<%= btnSaveContest.UniqueID %>', '')
        return true;
    }
    else {
        alert('not valid');      
        return false;
    }     

这个question 可能有用。

【讨论】:

猜你喜欢
  • 2010-10-28
  • 2016-02-09
  • 2011-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-18
  • 2015-05-23
相关资源
最近更新 更多