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が表示されますが、1秒後に消えます。

 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 に答える