Einlesen eines neu generierten Input-Feld: Wo ist der Fehler?
Jörg
- javascript
Hallo,
ich möchte in einem BBcode-Generator das youtube-Icon mit einem weiteren Formularfeld versehen.
Geht alles auch, aber ich kriegs grad nicht hin, das Feld auszulesen.
Wo ist mein Denkfehler?
Jörg
youtubeMenu:
'<div><label for="link">{label}</label> ' +
'<input type="text" id="link" dir="ltr" placeholder="https://" /></div>' +
'<div><label for="title">Video Title:</label> ' +
'<input type="text" id="title" dir="ltr" placeholder="Enter video title" /></div>' +
'<div><input type="button" class="button" value="{insert}" />' +
'</div>',
....
exec: function (btn) {
var editor = this;
// Öffne das Dropdown-Menü und erhalte den Callback
defaultCmds.youtube._dropDown(editor, btn, function (id, time) {
var content = createElement('div');
appendChild(content, _tmpl('youtubeMenu', {
label: editor._('Video URL:'),
insert: editor._('Insert')
}, true));
// Hole die Werte aus den Eingabefeldern
var videoUrl = find(content, '#link')[0].value; // Hol die Video-URL
var title = find(content, '#title')[0].value; // Hol den Titel
// Debugging: Ausgabe in der Konsole
console.log('Video URL:', videoUrl);
console.log('Video Title:', title);
Du müsstest uns schon die find Funktion auch zeigen, vermutlich liegt da der Fehler.
Du müsstest uns schon die find Funktion auch zeigen, vermutlich liegt da der Fehler.
Hallo Michael,
danke für Deinen Ansatz.
Ich glaube, obiger Code war ohnehin ungünstig, ich habe es mal umformuliert:
exec: function (btn) {
var editor = this;
// Öffne das Dropdown-Menü und erhalte den Callback
defaultCmds.youtube._dropDown(editor, btn, function (id, time) {
// Erstelle das Container-Element für Eingaben
var content = createElement('div');
appendChild(content, _tmpl('youtubeMenu', {
label: editor._('Video URL:'),
insert: editor._('Insert')
}, true));
// Hole die Werte aus den Eingabefeldern
var videoUrlInput = content.querySelectorAll('#link')[0]; // Hol die Video-URL
var titleInput = content.querySelectorAll('#title')[0]; // Hol den Titel
if (videoUrlInput && titleInput) {
var videoUrl = videoUrlInput.value; // Video-URL
var title = titleInput.value; // Titel
// Debugging: Ausgabe in der Konsole
console.log('Video URL:', videoUrl);
console.log('Video Title:', title);
Das Problem ist aber ein anderes, nämlich der Zeitpunkt des Auslesens.
Bereits beim Generieren des Formulars wird ausgelesen, da steht aber natürlich noch gar nichts drin, denn der User soll es ja dann erst eintragen.
Wenn ich das Formular mit einem value versehe, wird genau dieser value ausgelesen, selbst wenn er später vom User überschrieben wird.
Es gelingt mir aber nicht, einen eventhandler auf den Absendebutton zu legen, der beim absenden die Formularfelder erneut ausliest.
Jörg
Hallo,
habe das Problem gelöst.
Habe den Codeteil gefunden, der für die URL zuständig war und konnte dort viel einfacher um den Titel erweitern.
Jörg