Page 1 of 1

Textbereich – Cursor bewegt sich zum Ende – reagieren

Posted: 16 Jan 2025, 02:33
by Guest
Wenn ich etwas in den Textbereich eingebe, funktioniert es einwandfrei. Aber wenn ich versuche, den Cursor zurück zu bewegen, um Text hinzuzufügen/zu bearbeiten, bewegt er sich nach der Eingabe eines Zeichens zum Ende.
Code:

Code: Select all

React.createElement('textarea', {
name: 'SpecialInstruction',
id: 'rad_SpecialInstruction', value: this.props.stateobj.SpecialInstruction,
onFocus: (event) => {

const currentValue = event.target.value;
//event.target.value = currentValue + '.';
//this.handleOrderChange(event); // trigger the onChange event handler
},
onChange: this.handleOrderChange, className: 'form-control', maxLength: 512, style: { fontSize: '12px !important' },
})
)

handleOrderChange-Code:

Code: Select all

_this.handleOrderChange = function (e) {
_this.props.AddModuleState(_defineProperty({}, e.target.name, e.target.value), "RAD");

// Store the current cursor position
const cursorPosition = e.target.selectionStart;

// Prevent the default behavior of the input element
e.preventDefault();

_this.props.AddModuleState(_defineProperty({}, e.target.name, e.target.value), "RAD");

// Restore the cursor position
e.target.setSelectionRange(cursorPosition, cursorPosition);

};
Nachdem ich versucht hatte, diesen Code zu reparieren, habe ich setTimeout eingefügt, e.preventdefault() entfernt und die doppelte AddModuleState-Zeile entfernt, es hat sich verbessert Vieles, aber das Problem bleibt bestehen!
Mein Versuch:

Code: Select all

_this.handleOrderChange = function (e) {
_this.props.AddModuleState(_defineProperty({}, e.target.name, e.target.value), "RAD");

// Store the current cursor position
const cursorPosition = e.target.selectionStart;

setTimeout(() => {
e.target.setSelectionRange(cursorPosition, cursorPosition);
}, 0);
};
Einige Hintergrundinformationen, die hilfreich sein könnten:
  • Dies ist Teil einer Anwendung, bei der Ärzte Tests für Patienten anordnen.
    Der Text dieses Textbereichs soll dort gespeichert bleiben, während wir unsere Bestellung speichern.
  • Wir haben versucht, die gesamte Logik in onChange zu entfernen, es hat funktioniert aber der Text wird nicht im Textbereich gespeichert, nachdem wir versucht haben, unsere Bestellungen zu bearbeiten.