Hallo Forum,
ich habe eine Internetseite die ein paar Spielereien, mittels jQuery, beinhaltet.
Wenn ich nun ein Powermail-Formular einbaue, wird keine Validierung (vom Email-Feld) vorgenommen. Ich habe herrausgefunden, dass es mit jQuery zu tun hat. Denn wenn ich die jQuery-Library rausnehme, funktioniert die Validierung von Powermail wunderbar!
So wird gar nicht validiert, und es kommt zu JS-Fehlern.
<script src="typo3conf/ext/powermail/js/mandatoryjs/lib/prototype.js" type="text/javascript"></script>
<script src="typo3conf/ext/powermail/js/mandatoryjs/src/effects.js" type="text/javascript"></script>
<script src="typo3conf/ext/powermail/js/mandatoryjs/fabtabulous.js" type="text/javascript"></script>
<script src="typo3conf/ext/powermail/js/checkbox/checkbox.js" type="text/javascript"></script>
<script src="typo3temp/javascript_93077bb238.js" type="text/javascript"></script>
<link rel="shortcut icon" href="/fileadmin/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/fileadmin/css/global.css" />
<script type="text/javascript" src="/fileadmin/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="/fileadmin/js/jquery.tools.min.js"></script>
<script type="text/javascript" src="/fileadmin/js/scripts.js"></script>
<!--[if lte IE 6]>
<script type="text/javascript" src="/js/unitpngfix.js"></script>
<link rel="stylesheet" type="text/css" href="/css/ie6.css" />
<![endif]-->
<script src="8.3131.html" type="text/javascript"></script>
<script type="text/javascript" src="t3lib/jsfunc.validateform.js"></script>
Fehler im Firebug:
Error: element.attachEvent is not a function
Source File: http://xxxxx/typo3conf/ext/powermail/js/mandatoryjs/lib/prototype.js
Line: 4017
Error: element.dispatchEvent is not a function
Source File: http://xxxxx/typo3conf/ext/powermail/js/mandatoryjs/lib/prototype.js
Line: 4072
Error: this.element.getElementsByTagName is not a function
Source File: http://xxxxx/typo3conf/ext/powermail/js/mandatoryjs/fabtabulous.js
Line: 16
Gibt es eine Möglichkeit, dass beide Frameworks (jQuery und Prototype) nebeneinader existieren können?
Hallo Alex,
ne diesen Link kannte ich noch nicht. Ich habe die Änderungen per Hand vollzogen.
Es tauchen auch nun keine Fehler mehr im Firebug auf. Aber trotzdem wird das Email-Feld nicht validiert. Das Feld Email ist auch im Backend richtig eingestellt. Das Formular wird einfach verschickt.
Hier nochmal der Header:
<script src="typo3conf/ext/powermail/js/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="typo3conf/ext/powermail/js/jquery/tx_powermail.js" type="text/javascript"></script>
<script src="typo3conf/ext/powermail/js/checkbox/checkbox.js" type="text/javascript"></script>
<script src="typo3temp/javascript_93077bb238.js" type="text/javascript"></script>
<link rel="shortcut icon" href="/fileadmin/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/fileadmin/css/global.css" />
<script type="text/javascript" src="/fileadmin/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="/fileadmin/js/jquery.tools.min.js"></script>
<script type="text/javascript" src="/fileadmin/js/scripts.js"></script>
<script src="8.3131.html" type="text/javascript"></script>
<script type="text/javascript" src="t3lib/jsfunc.validateform.js"></script>
Ich weiß, dass jquery-1.3.2.min.js 2x drin ist. Aber auch wenn es nur 1x drin ist, funktioniert die Validierung nicht. Es ist 2x drin, da Powermail sein JS-Code nur in die betreffende Seite einbindt. Ich benötige mein jQuery aber auf alle Seiten. Darum ist es auf der Formular-Seite 2x vorhanden.
Ich habe den Eindruck, dass der JS-Code im HTML nicht richtig durch die class.tx_powermail_form.php ausgegeben wird. Ich habe mal class.tx_powermail_form.php ein alert("asdf"); reingeschrieben.
// Add Javascript after form output for mandatory check
function AddMandatoryJS() {
if($this->conf['libraryToUse'] == 'jquery'){
$js = '
<script type="text/javascript">
function formCallback(result, form) {
window.status = "valiation callback for form " + form.id + ": result = " + result;
alert("asdf");
}
var valid = new Validation("#'.$this->OuterMarkerArray['###POWERMAIL_NAME###'].'", {immediate : true, onFormValidate : formCallback, focusOnError: true});
</script>
';
}else{
$js = '
<script type="text/javascript">
function formCallback(result, form) {
window.status = "valiation callback for form \'" + form.id + "\': result = " + result;
alert("asdf");
}
var valid = new Validation(\'' . $this->OuterMarkerArray['###POWERMAIL_NAME###'] . '\', {immediate : true, onFormValidate : formCallback});
</script>
';
}
return $js;
}
Das wird auch nach Cache leeren nicht ausgegeben. Es wird immer das selbe ausgegeben 🙁
<script type="text/javascript">
function formCallback(result, form) {
window.status = "valiation callback for form '" + form.id + "': result = " + result;
}
var valid = new Validation('kontaktaufimpressum', {immediate : true, onFormValidate : formCallback});
</script>
Liegt das vielleicht daran?
Hat denn jemand von Euch eine gepatchte Powermail 1.5.3 und könnte mir die bitte zum Download irgendwo hinlegen oder per Mail schicken? 8-)
Wäre echt sehr lieb, denn ich kann die .patch nicht ausführen.
TheFreeman schrieb
Hat denn jemand von Euch eine gepatchte Powermail 1.5.3 und könnte mir die bitte zum Download irgendwo hinlegen oder per Mail schicken? 8-)
Wäre echt sehr lieb, denn ich kann die .patch nicht ausführen.
Ich habe ein Arbeitsversion, die ich dir zur Verfügung stellen kann. Diese unterstützt nur noch jQuery (mit t3jquery im noConflictMode). Bei Interesse bitte E-Mail.
Ich habe nun die gepatchte 1.5.3 auf meinem 4.4.2 laufen.
Die für jQeury nötigen Scripts werden von powermail ordnungsgemäß eingebunden:
<script src="fileadmin/sys_scripts/jquery/jquery-1.4.2.min.js?1282225634" type="text/javascript"></script>
<script src="typo3conf/ext/powermail/js/jquery/tx_powermail.js?1282899687" type="text/javascript"></script>
<script src="typo3conf/ext/powermail/js/misc/misc.js?1282899687" type="text/javascript"></script>
Aber die JS-Prüfung funktioniert trotzdem nicht.
An was kann das liegen?
Sonst sind keine anderen Scripts eingebunden und
auch KEINE anderen Frameworks. #angry#
Ahh....
Habs gerade gesehen:
http://forge.typo3.org/issues/4762
Mein patch war vor dem 22.08.2010.
Mal sehen, ob´s mit dem Neuen geht. 8-)