if语句导致回调

时间:2015-07-07 08:22:09

标签: javascript jquery asp.net callback

我有一个jquery if语句导致不必要的回调。这是相关代码:

JQuery的:

function test() {
    if ($('#' + '<%= tbNewRecipient.ClientID%>').val().length() < 1) {
        //TODO: add stuff
    }
    return false;
}

ASPX:

<asp:Button ID="btnAddRecipient" runat="server" Text="+" ToolTip="Add Recipient" CssClass="narrow_button" UseUbmitBehaviour="false" CausesValidation="false" OnClientClick="return test();"/>
<div id="divAddRecipient" style=" color:black; display:inline;" runat="server">
    <asp:TextBox ID="tbNewRecipient" runat="server" Visible="true"></asp:TextBox>
</div>  

这会导致不必要的回调。当我刚刚使用这个简单的警报窗口时,它没有回调:

function test() {
    alert($('#' + '<%= tbNewRecipient.ClientID%>').val());
    return false;
}

为什么我会收到回叫,我该如何避免?

1 个答案:

答案 0 :(得分:2)

不是.length(),只是.length。那会给你带来麻烦。

$('#' + '<%= tbNewRecipient.ClientID%>').val().length
// -------------------------------------------------^

当您使用.length()(它不是对象的属性或方法)时,会抛出错误,导致return false无法执行。所以它导致回调!

注意: .length是属性,而不是方法。希望得到答案!