[gelöst]Javascript/jQuery-Code funktioniert nicht
am 08.01.2012 - 18:22 Uhr in
Hallo zusammen,
ich habe aus meiner Testphase mit Drupal 6 versucht ein eigenes Modul neu unter Drupal 7 zu machen.
Damals hatte ich eine Javascriptdatei mit folgender Zeile eingebunden:
drupal_add_js(drupal_get_path('module', 'lsscan') .'/lsscan.js');
eingebunden. Der Code in dieser Datei sieht wie folgt aus:
$(document).ready(function() {
// focus auf das erste Textfeld der Seite
$("input[type='text']:first", document.forms[0]).focus();
});Dieser Code soll den Cursor in das erste Textefeld platzieren...aber nichts passiert.
Versuche ich normalen eigenen JS-Code auszuführen geht bis auf den alert-Befehl nichts.
Ich hatte dann gesucht ob sich bei Drupal 7 was geändert hat aber nichts entscheidenes gefunden.
Bin mir aber sicher das hier das Problem vor dem PC sitzt...was mache ich falsch?
Danke im voraus!
Ati
- Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Ati, hast Du mal
am 09.01.2012 - 10:12 Uhr
Hallo Ati,
hast Du mal geschaut, ob die lsscan.js überhaupt irgendwo im Quelltext der erzeugten Seite zu finden ist?
Wenn ja, kann die lsscan.js unter dem angegebenen Pfad per Hand im Browser aufgerufen werden?
Wenn ja, hast Du in der JS-Datei mal ein alert zum Testen eingefügt ?
Gruß,
Sven
Hi SvenLudwig,erstmal Danke
am 09.01.2012 - 14:10 Uhr
Hi SvenLudwig,
erstmal Danke für Deine Antwort. Also die JS-Datei wird im Seitenquelltext angezeigt. Einen Aufruf per Hand habe ich nicht versucht.
Ein "alert" in einer nackten JS-Datei funktioniert ja..aber sonst nichts. Ein alert in einer jQuery-Datei habe ich noch nicht zum laufen bekommen.
Ich bin schon in den tiefen des Inets auf der Suche nach einen Tutorial für Javascript unter Drupal 7...ich kann am besten lernen wenn ich funktionierende
Quelltexte sehe. ICh habe mir auch schon einige Module angeguckt....aber die sind natürlich ganz großes Kung-Fu in meinen Augen.
Bin ja Autodidakt!!
Ati
So langsam verstehe ich immer
am 09.01.2012 - 14:13 Uhr
So langsam verstehe ich immer weniger. Laut http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_ad...
sollte doch folgende Zeile ein alert-Fenster öffnen oder?
drupal_add_js('jQuery(document).ready(function () { alert("Hello!"); });', 'inline');Bei mir tut sich aber nichts?!?!?
Hast Du eine Demoseite wo das
am 09.01.2012 - 14:17 Uhr
Hast Du eine Demoseite wo das ersichtlich ist? Vielleicht kannst Du mal den gesamten Code posten in die der Code eingebunden ist.
Also eine Demoseite habe ich
am 09.01.2012 - 15:24 Uhr
Also eine Demoseite habe ich leider nicht. Ich habe aber mal in die Fehelrkonsole des Firefox geschaut und dort standen etliche Meldungen ala "jQuery is not defined". Also habe ich mal das jQuery-Update-Modul installiert. Jetzt geht die vorgenannte Zeile drupal_add_js...allerdings taucht jetzt auf jeder Seite die alert-Meldung auf?!?!
Wenn man mich nicht auslacht werde ich mal den aktuellen Code posten ;-).
.info-Datei
name = LS-Scandescription = Speichert Lieferscheinnummer inkl. Tour und Datum
core = 7.x
package = Eigene Module
.module
<?php
//drupal_add_js(drupal_get_path('module','lsscan') .'/lsscan.js', 'file');
drupal_add_js('jQuery(document).ready(function () { alert("INLINE!!"); });', 'inline');
function lsscan_menu() {
$items = array();
$items['lsscan/form'] = array(
'title' => t('LS-Scan'),
'page callback' => 'lsscan_form',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function lsscan_form(){
return drupal_get_form('lsscan_my_form');
}
function lsscan_my_form($form_state) {
$form['description'] = array(
'#type' => 'item',
'#title' => t('Formular zum scannen von Auftragsnummern'),
);
// This is the first form element. It's a textfield with a label, "Name"
$form['tour']= array(
'#type' => 'select',
'#title' => t('Tour'),
'#options' => array(
'0' => t(' '),
'501' => t('501'),
'502' => t('502'),
'503' => t('503'),
'504' => t('504'),
'505' => t('505'),
'506' => t('506'),
),
'#description' => t('Bitte Tournummer angeben!!'),
);
$form['au'] = array(
'#type' => 'textfield',
'#title' => t('LS-Nummer'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Speichern',
);
return $form;
}
function lsscan_my_form_submit($form, &$form_state) {
$tour = $form_state['values']['tour'];
$au = $form_state['values']['au'];
db_query("Insert into lsscan (tour, au) values ('$tour', '$au')");
drupal_set_message(t('Datensatz gespeichert'));
}
Ich hoffe das reicht erstmal so.
Also es läuft endlich...habe
am 10.01.2012 - 05:48 Uhr
Also es läuft endlich...habe da wohl sehr kompliziert gedacht.
Mit
drupal_add_js(drupal_get_path('module','lsscan').'/lsscan.js');wird die JS-Datei eingebunden und die JS-Datei sieht jetzt wie folgt aus:
(function($) {$(document).ready(function () {
$("input[type='text']:first", document.forms[0]).focus();
});
})(jQuery);
So macht es aktuell das was ich will.
Ati