2

我有一个asp链接

<asp:LinkButton ID="next" CssClass="Button Large" runat="server" OnClick="Next_Click" OnClientClick="showBillingRequiredState(this)">Next</asp:LinkButton>

单击它时,我想从 continue 取消页面,如果我的 javascript 返回 false,我希望它仅取消处理。现在我正在显示一个错误,但随后错误消失并且它没有粘住..某些东西导致它刷新并且我失去了我的错误。这是javascript,正如我提到的,它通过了我的所有条件并显示了div,但一秒钟后它消失了。

 function showrequired(evt) {
        var code = document.getElementById('<%=codelist.ClientID%>').options[document.getElementById('<%=codelist.ClientID%>').selectedIndex].value;
        var currentValue= document.getElementById('<%=statevalue.ClientID%>').value;
        var eDiv = document.getElementById('reqDiv');

        if (code == "US" && currentValue.trim() == '') {
            eDiv.style.display = 'block';
            return false;
        }
        else {
            eDiv.style.display = 'none';
        }

     }
4

2 回答 2

2

尝试:

 OnClientClick=" return showBillingRequiredState(this)"
于 2012-12-18T02:43:42.657 回答
0

jquery event default 在这种情况下工作得很好

<script>
$("#<%= next.ClientID %>").click(function(event) {

 var countryCode = document.getElementById('<%=lstBillingCountryCode.ClientID%>').options[document.getElementById('<%=lstBillingCountryCode.ClientID%>').selectedIndex].value;
        var currentStateValue = document.getElementById('<%=txtBillingState.ClientID%>').value;
        var errorDiv = document.getElementById('reqBillingState');

        if (countryCode == "US" && currentStateValue.trim() == '') {
            errorDiv.style.display = 'block';
           event.preventDefault();
           //while stepping through this with firebug, it gets here fine but then it just gets ignored
        }
        else {
            errorDiv.style.display = 'none';
        }



});
</script>
于 2012-12-18T02:42:33.753 回答