![]() |
| | LinkBack | Themen-Optionen | Thema bewerten | Ansicht |
|
#1
| ||||
| ||||
Hallo, ich habe heute TYPO3 auf die Version 4.2.1 geupdated. Leider funktioniert jetzt bei Powermail die JavaScript Fehlerprüfung nicht mehr. Die Fehlerprüfung per PHP funktioniert einwandfrei. In den Constants ist die Prüfung aktiviert: Typoscript-Code:
Woran kann das liegen? Muss ich noch irgendwas nach dem Update anpassen? Ich habe Powermail jetzt auch auf die aktuelle Version 1.3.6 geupdated. Trotzdem hat sich diesbezüglich nichts geändert? MFG Anderl |
|
#2
| ||||
| ||||
| Vermutlich beißt sich prototype mit einem anderen JS - hast du mal einen Link?
__________________ einpraegsam.net alias wunschtacho Powermail :: Einprägsam :: Xing Profil :: Wunschtacho :: JustPowder :: conject |
|
#3
| |||
| |||
|
|
#4
| ||||
| ||||
|
__________________ einpraegsam.net alias wunschtacho Powermail :: Einprägsam :: Xing Profil :: Wunschtacho :: JustPowder :: conject |
|
#5
| |||
| |||
Eigentlich habe ich nichts neues an Extensions installiert. Folglicherweise sollten doch auch keine neuen JS hinzugekommen sein, oder? MFG Anderl |
|
#6
| ||||
| ||||
| Typoscript-Code: Das sollte automatisch geladen werden und das JavaScript bei &type=3131 ausspucken. Das ist aber nicht der Fall - denn es wird noch das ganze "Drumherum" geladen.
__________________ einpraegsam.net alias wunschtacho Powermail :: Einprägsam :: Xing Profil :: Wunschtacho :: JustPowder :: conject |
|
#7
| |||
| |||
Hallo, ok, und wie kann ich das verhindern? MFG Anderl |
|
#8
| ||||
| ||||
| Keine Ahnung - ich kenne dein TS nicht
__________________ einpraegsam.net alias wunschtacho Powermail :: Einprägsam :: Xing Profil :: Wunschtacho :: JustPowder :: conject |
|
#9
| |||
| |||
Ich habe jetzt mal im typo3temp Verzeichnis alle Dateien gelöscht. Jetzt bekomme ich bei ?type=3131 folgende Ausgabe: Code: /* * Really easy field validation with Prototype * http://tetlaw.id.au/view/javascript/really-easy-field-validation * Andrew Tetlaw * Version 1.5.4.1 (2007-01-05) * * Copyright (c) 2007 Andrew Tetlaw * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, copy, * modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ var Validator = Class.create(); Validator.prototype = { initialize : function(className, error, test, options) { if(typeof test == 'function'){ this.options = $H(options); this._test = test; } else { this.options = $H(test); this._test = function(){return true}; } this.error = error || 'Validation failed.'; this.className = className; }, test : function(v, elm) { return (this._test(v,elm) && this.options.all(function(p){ return Validator.methods[p.key] ? Validator.methods[p.key](v,elm,p.value) : true; })); } } Validator.methods = { pattern : function(v,elm,opt) {return Validation.get('IsEmpty').test(v) || opt.test(v)}, minLength : function(v,elm,opt) {return v.length >= opt}, maxLength : function(v,elm,opt) {return v.length <= opt}, min : function(v,elm,opt) {return v >= parseFloat(opt)}, max : function(v,elm,opt) {return v <= parseFloat(opt)}, notOneOf : function(v,elm,opt) {return $A(opt).all(function(value) { return v != value; })}, oneOf : function(v,elm,opt) {return $A(opt).any(function(value) { return v == value; })}, is : function(v,elm,opt) {return v == opt}, isNot : function(v,elm,opt) {return v != opt}, equalToField : function(v,elm,opt) {return v == $F(opt)}, notEqualToField : function(v,elm,opt) {return v != $F(opt)}, include : function(v,elm,opt) {return $A(opt).all(function(value) { return Validation.get(value).test(v,elm); })} } var Validation = Class.create(); Validation.prototype = { initialize : function(form, options){ this.options = Object.extend({ onSubmit : true, stopOnFirst : false, immediate : false, focusOnError : true, useTitles : false, onFormValidate : function(result, form) {}, onElementValidate : function(result, elm) {} }, options || {}); this.form = $(form); if(this.options.onSubmit) Event.observe(this.form,'submit',this.onSubmit.bind(this),false); if(this.options.immediate) { var useTitles = this.options.useTitles; var callback = this.options.onElementValidate; Form.getElements(this.form).each(function(input) { // Thanks Mike! Event.observe(input, 'blur', function(ev) { Validation.validate(Event.element(ev),{useTitle : useTitles, onElementValidate : callback}); }); }); } }, onSubmit : function(ev){ if(!this.validate()) Event.stop(ev); }, validate : function() { var result = false; var useTitles = this.options.useTitles; var callback = this.options.onElementValidate; if(this.options.stopOnFirst) { result = Form.getElements(this.form).all(function(elm) { return Validation.validate(elm,{useTitle : useTitles, onElementValidate : callback}); }); } else { result = Form.getElements(this.form).collect(function(elm) { return Validation.validate(elm,{useTitle : useTitles, onElementValidate : callback}); }).all(); } if(!result && this.options.focusOnError) { Form.getElements(this.form).findAll(function(elm){return $(elm).hasClassName('validation-failed')}).first().focus() } this.options.onFormValidate(result, this.form); return result; }, reset : function() { Form.getElements(this.form).each(Validation.reset); } } Object.extend(Validation, { validate : function(elm, options){ options = Object.extend({ useTitle : false, onElementValidate : function(result, elm) {} }, options || {}); elm = $(elm); var cn = elm.classNames(); return result = cn.all(function(value) { var test = Validation.test(value,elm,options.useTitle); options.onElementValidate(test, elm); return test; }); }, test : function(name, elm, useTitle) { var v = Validation.get(name); var prop = '__advice'+name.camelize(); try { if(Validation.isVisible(elm) && !v.test($F(elm), elm)) { if(!elm[prop]) { var advice = Validation.getAdvice(name, elm); if(advice == null) { var errorMsg = useTitle ? ((elm && elm.title) ? elm.title : v.error) : v.error; advice = '
' + errorMsg + '
' switch (elm.type.toLowerCase()) { case 'checkbox': case 'radio': var p = elm.parentNode; if(p) { new Insertion.Bottom(p, advice); } else { new Insertion.After(elm, advice); } break; default: new Insertion.After(elm, advice); } advice = Validation.getAdvice(name, elm); } if(typeof Effect == 'undefined') { advice.style.display = 'block'; } else { new Effect.Appear(advice, {duration : 1 }); } } elm[prop] = true; elm.removeClassName('validation-passed'); elm.addClassName('validation-failed'); return false; } else { var advice = Validation.getAdvice(name, elm); if(advice != null) advice.hide(); elm[prop] = ''; elm.removeClassName('validation-failed'); elm.addClassName('validation-passed'); return true; } } catch(e) { throw(e) } }, isVisible : function(elm) { while(elm.tagName != 'BODY') { if(!$(elm).visible()) return false; elm = elm.parentNode; } return true; }, getAdvice : function(name, elm) { return $('advice-' + name + '-' + Validation.getElmID(elm)) || $('advice-' + Validation.getElmID(elm)); }, getElmID : function(elm) { return elm.id ? elm.id : elm.name; }, reset : function(elm) { elm = $(elm); var cn = elm.classNames(); cn.each(function(value) { var prop = '__advice'+value.camelize(); if(elm[prop]) { var advice = Validation.getAdvice(value, elm); advice.hide(); elm[prop] = ''; } elm.removeClassName('validation-failed'); elm.removeClassName('validation-passed'); }); }, add : function(className, error, test, options) { var nv = {}; nv[className] = new Validator(className, error, test, options); Object.extend(Validation.methods, nv); }, addAllThese : function(validators) { var nv = {}; $A(validators).each(function(value) { nv[value[0]] = new Validator(value[0], value[1], value[2], (value.length > 3 ? value[3] : {})); }); Object.extend(Validation.methods, nv); }, get : function(name) { return Validation.methods[name] ? Validation.methods[name] : Validation.methods['_LikeNoIDIEverSaw_']; }, methods : { '_LikeNoIDIEverSaw_' : new Validator('_LikeNoIDIEverSaw_','',{}) } }); Validation.add('IsEmpty', '', function(v) { return ((v == null) || (v.length == 0)); // || /^\s+$/.test(v)); }); Validation.addAllThese([ ['required', 'Dies ist ein Pflichtfeld', function(v) { return !Validation.get('IsEmpty').test(v); }], ['validate-number', 'Bitte eine gültige Zahl eintragen', function(v) { return Validation.get('IsEmpty').test(v) || (!isNaN(v) && !/^\s+$/.test(v)); }], ['validate-digits', 'Bitte nur eine Zahl ohne Sonderzeichen wie Punkte und Kommata eintragen', function(v) { return Validation.get('IsEmpty').test(v) || !/[^\d]/.test(v); }], ['validate-alpha', 'Bitte nur Buchstaben eintragen (a-z)', function (v) { return Validation.get('IsEmpty').test(v) || /^[a-zA-Z\-' öäüÖÄÜß]+$/.test(v) }], ['validate-alphanum', 'Bitte nur Buchstaben (a-z) oder Zahlen (0-9) eintragen. Leer- oder andere Zeichen sind nicht erlaubt', function(v) { return Validation.get('IsEmpty').test(v) || !/\W/.test(v) }], ['validate-date', 'Bitte ein korrektes Datum eintragen', function(v) { var test = new Date(v); return Validation.get('IsEmpty').test(v) || !isNaN(test); }], ['validate-email', 'Bitte eine gültige E-Mail Adresse eintragen (test@test.de)', function (v) { return Validation.get('IsEmpty').test(v) || /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v) }], ['validate-url', 'Bitte eine gültige URL eintragen (http://www.test.de)', function (v) { return Validation.get('IsEmpty').test(v) || /^(http|https|ftp:sad:\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+:sad:smile:sad:\d+))?\/?/i.test(v) }], ['validate-date-au', 'Bitte das Datum in folgendem Format eintragen: dd/mm/yyyy. (Beispiel: 17/03/2008 für den 17. März 2008)', function(v) { if(Validation.get('IsEmpty').test(v)) return true; var regex = /^(\d{2})\/(\d{2})\/(\d{4})$/; if(!regex.test(v)) return false; var d = new Date(v.replace(regex, '$2/$1/$3')); return ( parseInt(RegExp.$2, 10) == (1+d.getMonth()) ) && (parseInt(RegExp.$1, 10) == d.getDate()) && (parseInt(RegExp.$3, 10) == d.getFullYear() ); }], ['validate-currency-dollar', 'Bitte einen Geldbetrag eintragen (z.B. $100.00).', function(v) { // [$]1[##][,###]+[.##] // [$]1###+[.##] // [$]0.## // [$].## return Validation.get('IsEmpty').test(v) || /^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(v) }], ['validate-selection', 'Bitte eine Auswahl treffen', function(v,elm){ return elm.options ? elm.selectedIndex > 0 : !Validation.get('IsEmpty').test(v); }], ['validate-one-required', 'Bitte eine der obigen Optionen auswählen', function (v,elm) { var p = elm.parentNode; var options = p.getElementsByTagName('INPUT'); return $A(options).any(function(elm) { return $F(elm); }); }] ]); |
|
#10
| ||||
| ||||
| Sagmal nutzt du eventuell nicht TYPO3 zur HTML Headergenerierung sondern bastelst mit config.disableAllHeaderCode was eigenes? Fakt ist dass diese Ausgabe korrekt ist - aber eben NUR diese Ausgabe und nicht noch das HTML gesums außenherum...
__________________ einpraegsam.net alias wunschtacho Powermail :: Einprägsam :: Xing Profil :: Wunschtacho :: JustPowder :: conject |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | Thema bewerten |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Nach Update auf Typo3 4.2.0 rechter Scrollbalken weg? | typonewbe | TYPO3 4.x Fragen und Probleme | 7 | 25.11.08 10:58 |
| Nach Update auf 4.2.0 kein "Treeview" der Seiten | dirksch | TYPO3 4.x Fragen und Probleme | 2 | 29.04.08 17:17 |
| Gelöst Kein Zugriff mehr auf Typo3 nach Installation von kb_mailcs | DuffyDuck | TYPO3 4.x Fragen und Probleme | 3 | 17.02.08 21:24 |
| Bildunterschriften - Problem nach dem Typo3 Update | hiasimnetz | TYPO3 4.x Fragen und Probleme | 0 | 08.11.06 13:22 |
| Kein Dateiupload nach Update auf 3.8.1 | curzon | TYPO3 3.x Fragen und Probleme | 3 | 03.02.06 12:29 |