2011-11-27 26 views
13

Perché non seleziono #input-myBox quando seleziono un elemento? Sembra che il completamento automatico impedisca al mio .val('') di funzionare, quindi come posso risolvere il problema?Come modificare il valore della casella di testo sull'evento selezionato con completamento automatico (interfaccia utente jQuery)

$("#input-myBox").autocomplete({ 
    source: response, 
    minLength: 1, 
    select: function(event, ui) { 
       var selectedObj = ui.item; 
       $("#input-myBox").appendTo(".foo"); 
       $("#input-myBox").val(''); 
    } 
}); 
+1

'# input-mybox' dovrebbe essere' # input-myBox', per abbinare la tua domanda (forse una risposta) . –

risposta

37

event.preventDefault() interrompe il completamento automatico impostando il campo.

select: function (event, ui) { 
    event.preventDefault(); 
    var selectedObj = ui.item; 
    $("#input-myBox").appendTo(".foo"); 
    $("#input-myBox").val(''); 
} 
+0

Grazie, ha aiutato molto! :) –

1

E '#input-mybox (b minuscola) o #input-myBox (maiuscolo b)?

Questo potrebbe essere il vostro problema :)

Edit: Rob mi ha battuto ad esso

0

V'è in contrasto con il codice:

$("#input-mybox").appendTo(".foo"); 
$("#input-myBox").val(''); 

"# input-mybox" || "# input-mybox" ???

7

Inoltre, è possibile utilizzare "return false;" per interrompere il completamento automatico impostando il campo.

select: function (event, ui) { 
    var selectedObj = ui.item;   
    $("#input-myBox").appendTo(".foo"); 
    $("#input-myBox").val(''); 
    return false; 
} 
1

Se si desidera solo per sostituire il valore selezionato per qualcos'altro:

select: function(event, ui) { 
    ui.item.value = substituteWord(ui.item.value); 
} 
Problemi correlati