jQuery krijgt tekstgebiedtekst

Onlangs ben ik begonnen met jQuery te spelen en heb ik een aantal tutorials gevolgd. Nu voel ik me enigszins bekwaam in het gebruik ervan (het is vrij eenvoudig), en ik dacht dat het cool zou zijn als ik een ‘console’ op mijn webpagina zou kunnen maken (zoals in, je drukt op de `-toets zoals je doet in FPSgames, etc.), en laat het dan Ajax zelf terug naar de server om te doen dingen.

Oorspronkelijk dacht ik dat de beste manier zou zijn om de tekst gewoon in het tekstgebied te krijgen en deze vervolgens te splitsen, of moet ik de keyup-gebeurtenis gebruiken, de geretourneerde sleutelcode converteren naar een ASCII-teken, het teken toevoegen aan een tekenreeks en verzenden de string naar de server (leg vervolgens de string leeg).

Ik kon geen informatie vinden over het ophalen van tekst uit een tekstgebied, ik kreeg alleen keyup-informatie. En hoe kan ik de keycode die is geretourneerd naar een ASCII-teken converteren?


Antwoord 1, autoriteit 100%

Waarom zou je toetsaanslagen naar tekst willen converteren? Voeg een knop toe die de tekst binnen het tekstgebied naar de server stuurt wanneer erop wordt geklikt. Je kunt de tekst krijgen met behulp van het waarde-attribuut zoals de poster eerder heeft aangegeven, of met behulp van de API van jQuery:

$('input#mybutton').click(function() {
    var text = $('textarea#mytextarea').val();
    //send to server and process response
});

Antwoord 2, autoriteit 6%

Waar het vaak de tekstfunctie is die u gebruikt (bijv. in divs enz.), dan is het voor het tekstgebied val

krijg:

$('#myTextBox').val();

stel in:

$('#myTextBox').val('new value');

Antwoord 3, autoriteit 3%

Je zou een div moeten hebben die alleen de consoleberichten bevat, dat wil zeggen eerdere commando’s en hun uitvoer. En plaats daaronder een invoer- of tekstgebied dat alleen de opdracht bevat die u typt.

-------------------------------
| consle output ...           |
| more output                 |
| prevous commands and data   |
-------------------------------
> This is an input box.

Op die manier stuurt u gewoon de waarde van het invoervak naar de server voor verwerking en voegt u het resultaat toe aan de consoleberichten div.


Antwoord 4, autoriteit 2%

Normaal gesproken is dit de eigenschap value

testArea.value

Of mis ik iets in wat je nodig hebt?


Antwoord 5

Ik heb ontdekt dat ik de keyCode van de gebeurtenis naar een teken kan converteren door de volgende functie te gebruiken:

var char = String.fromCharCode(v_code);

Van daaruit zou ik het teken aan een string toevoegen, en wanneer de enter-toets wordt ingedrukt, stuur ik de string naar de server. Het spijt me als mijn vraag wat cryptisch leek, en de titel iets betekent dat bijna volledig off-topic is, het is vroeg in de ochtend en ik heb nog niet ontbeten ;).

Bedankt voor al jullie hulp jongens.


Antwoord 6

Ik denk dat het woord ‘console’ de verwarring veroorzaakt.

Als je een ouderwetse full/half duplex console wilt emuleren, gebruik je zoiets als dit:

$('console').keyup(function(event){
    $.get("url", { keyCode: event.which }, ... );
    return true;
});

event.die de toets heeft die is ingedrukt. Voor backspace-verwerking, event.which === 8.


Antwoord 7

de beste manier:
$(‘#myTextBox’).val(‘nieuwe waarde’).trim();


Antwoord 8

u kunt tekstgebiedgegevens krijgen op naam en id

// by name
<textarea name="comment"></textarea>
let text_area_data = $('textarea[name="comment"]').val();
// by id
<textarea id="comment" name="comment"></textarea>
let text_area_data = $('textarea#comment').val();

Antwoord 9

Lees tekstgebiedwaarde en code-char conversie:

Other episodes