2015-07-07 5 views
0

У меня есть jQuery if-statement, который вызывает нежелательный обратный вызов. Вот код, о котором идет речь:if-statement вызывает обратный вызов

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

Скобки не нужны для длины. просто '.length' –

+0

@JqueryKing ничего себе, что исправил его. Благодаря! Вы знаете, почему пропуская использование «.length» вызвало обратный вызов? Мне любопытно =) –

+1

Посмотрите на https://api.jquery.com/length/ –

ответ

2

Это не .length(), только .length. Это вызывает у вас проблемы.

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

При использовании .length(), который не является свойство или метод объекта, он выдает ошибку, что делает return false не выполнить. Поэтому он вызывает обратный вызов!

Примечание:.length - это свойство, а не способ. Надеюсь, что ответит!

+1

Спасибо! Я буду отмечать как можно более –

Смежные вопросы