Un vero problema per me, perché non ho idea di come risolverlo.jQuery su ("incolla") per la prima volta non afferra o supera il valore
jQuery script che ho scritto dovrebbe prendere il valore di input sull'azione "incolla" e passarlo da ajax al controller codeigniter.
In realtà funziona correttamente, ma solo se si incolla il valore per la seconda (e successiva) ora. Funziona bene anche quando cambio ("incolla") su on ("clic") per alcuni div o altri elementi DOM.
Script:
<script type="text/javascript">
$("#link").on("paste", function(){
$("#thumbs").empty().html("<p>loading</p>");
var postData = {
'url' : $("#link").val()
};
$.ajax({
type: "POST",
url: "/thumb/ajax/",
data: postData , //assign the var here
success: function(msg){
$("#thumbs").html("Data Saved: " + msg);
}
});
});
Qualsiasi aiuto sarebbe apprezzato
EDIT: un altro suggerimento.
val() in questo script specifico assume effettivamente il valore prima dell'azione. Se scrivo qualcosa a questo input, quindi lo rimuovo e incollo qualcos'altro, in realtà passerebbe al controller il valore che ho scritto, non quello che ho incollato.
EDIT2: OK, sono abbastanza sicuro che si tratta di un problema di jQuery con Incolla.
<script type="text/javascript">
$("#link").on("paste", function(){
$("#thumbs").empty().html("<p>loading</p>");
var postData = {'url' : $("#link").val() };
$("#thumbs").html($("#link").val());
});
</script>
Questo script dovrebbe aggiungere valore dall'input a div # pollici. Non fa per la prima azione di incolla. Al secondo posto funziona davvero.
EDIT3: Il mio amico mi ha dato un suggerimento. on ("incolla") funziona proprio sull'azione "incolla" e prima che l'incolla sia effettivamente eseguita. Se qualcuno mi dà un suggerimento su come fare un timeout per prendere il valore dopo la pasta posso andare avanti.
Vorrei aver visto questo post un'ora fa. Jquery posso avere quell'ora indietro della mia vita che hai appena sprecato ^^ – azzy81
Dovresti riuscire a farlo anche con il timeout impostato su 0. –