9

Sto utilizzando il completamento automatico di jQuery e funziona correttamente, ora voglio memorizzare una variabile in sessione da jQuery quando si verifica la condizione seguente.Completamento automatico jQuery su evento selezionato

Quando qualcuno digita qualsiasi parola jQuery mostra il menu a discesa dei suggerimenti, se qualcuno seleziona un elemento dal menu a discesa dei suggerimenti.

Desidero acquisire il punto sopra e memorizzare una variabile in sessione.

Ho cercato Google, StackOverflow ma non ho trovato alcuna soluzione pertinente. Il mio codice per il completamento automatico è la seguente:

$(".autosearch-smart").autocomplete('Home/GetCompanyNames', { 
    minChars: 1, 
    width: 402, 
    matchContains: "word", 
    autoFill: true 
}); 

e questo è quello che ho cercato di fare:

$(".autosearch-smart").autocomplete('Home/GetCompanyNames', { 
    minChars: 1, 
    width: 402, 
    matchContains: "word", 
    autoFill: true, 
    select: function (a, b) { 
     alert("selected"); 
    } 

}); 

EDIT: gestore Seleziona evento non sta lavorando anche

Sto usando asp. MVC3 netto con C#. Per favore aiutatemi e grazie in anticipo.

+0

controllare la console di errore che cosa dice ...? –

+0

niente visualizzato nella console @Anant –

+0

@smartboy Quali sono le librerie jquery che hai usato ?? –

risposta

15

Quindi, se ho capito bene che si desidera memorizzare il valore selezionato in un sessioni variabili

è possibile ottenere il valore di fuori della voce selezionata tramite codice seguente:

$(".autosearch-smart").autocomplete('Home/GetCompanyNames', { 
minChars: 1, 
width: 402, 
matchContains: "word", 
autoFill: true, 
select: function (event, ui) { 
    var label = ui.item.label; 
    var value = ui.item.value; 
    //store in session 
    document.valueSelectedForAutocomplete = value 
} 
}); 

il valore e l'etichetta sono oggetti JSON che provenivano dal server

Spero che questo aiuti

+1

Seleziona evento non funziona come ti ho detto nella mia domanda e l'ho provato di nuovo ma non ha avuto successo –

+1

Perché il gestore di selezione non funziona ??? –

1

Beh, se si desidera memorizzare nella sessione utilizzando asp.net MVC3 poi fare il seguente

$(".autosearch-smart").autocomplete('Home/GetCompanyNames', { 
    minChars: 1, 
    width: 402, 
    matchContains: "word", 
    autoFill: true, 
    select: function (event, ui) { //must be cleared with function parameter 
     //alert(ui.item.label); //will show you the selected item 

     $.ajax({ 
      type: 'POST', 
      url: '/Controller/Action1', //whatever any url 
      data: {label: ui.item.label}, 
      success: function(message) { if(message.data == true) ... else ... }, 
      dataType: 'json' 
     }); 

    } 

}); 

e regolatore

[HttpPost] 
    public JsonResult Action1(string label) { 

    this.Session["AnyValue"] = label; 

    return Json(new { 
     data = true 
    }, JsonRequestBehavior.AllowGet); 
    } 
+0

Non pensare di aver bisogno dell'impostazione JsonRequestBehavior.AllowGet poiché viene filtrata come HTTPPOST –

+0

È facoltativo (JsonRequestBehavior.AllowGet) –

-2

Il titolo questione sembra noioso, ma dalla descrizione che ho capito la tua domanda. Ora tenere presente questi punti:

  1. sessioni sono sul server.
  2. l'evento click è sul lato client.

Ora è necessario inviare una notifica dal lato client al server circa lo stesso. Ciò può essere ottenuto tramite la tecnologia AJAX in modo seguente:

  1. legare ".autosearch-intelligente" per Click() e dentro click make ajax() richiesta a un URL specifico sul tuo sito con un parametro tag di cliccato = true es. yoursite.com/sessionsettercontroller?clicked=true

  2. sul lato server in sessionettercontroller check per clicked = true e quindi impostare la variabile su SESSION.

Problemi correlati