+ Antworten
Ergebnis 1 bis 2 von 2

Thema: JS - Formular nicht abschicken mit Enter - will nicht

  1. #1
    War schon öfter hier
    Registriert seit
    04.10.2008
    Beiträge
    178
    Bedankte sich
    25
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Ausrufezeichen JS - Formular nicht abschicken mit Enter - will nicht

    Tach

    entschuldigt den Titel, ich wusste nicht so ganz wie ich das formulieren soll.

    Ich möchte die Yasb shoutbox etwas erweitern so das man mehr Text eingeben kann. Dazu soll das Formular nicht mit Enter abgeschickt werden, sondern das Enter soll einen Zeilenumbruch übernehmen.

    Da ich in Javascript wirklich meine Probleme habe und meine Versuche scheitern, hoffe ich auf hilfe.

    Per Google hab ich schon rausgefunden dass folgende Zeile im Javascript für das Abschicken per Enter verantwortlich ist:

    Code:
    if(event.keyCode == 13){
    this.sendText();
    }
    Aber wenn ich versuche dort im Code stellen auszukommentieren, dann ist das immer mit Problemen verbunden.

    Meist passiert es so, dass ich zwar während der Eingabe enter drücken kann und die Zeile umgebrochen wird, aber dass dann der Button Senden nicht mehr funktioniert (der text wird zwar abgeschickt aber in der DB kommt nix an) Wenn ich im gleichen Versuch aber ohne Enter schreibe, funktioniert das abschicken ganz normal.

    Ich kann das Problem nicht nachvollziehen, aber ich glaube dieser Code-teil ist der relevante:

    Code:
    		if($chk(this.form.text)) {
    			
    		this.form.text.addEvent('keydown',(function(event){
    				if(event.keyCode == 13){
    					this.sendText();
    				}
    				return false;
    			}).bind(this));
    			
    			$('yasbChatForm').addEvent('submit',(function(event){
    				event.preventDefault();
    				this.sendText();
    				return false;
    			}).bind(this));
    			
    			$('yasbSubmit').addEvent('click',(function(){
    				this.sendText();
    				return false;
    			}).bind(this));
    		}
    		if($chk(this.captcha.check) ){
    			this.captcha.check.addEvent('keydown',(function(event){
    				if(event.keyCode == 13){
    					this.sendText();
    				}
    				return false;
    			}).bind(this));
    		}
    Bitte helft mir, ich verzweifle echt hier dran, was muss an dem Text geändert werden, damit das Enter einen einfachen Zeilenumbruch nimmt? (Ach den Captcha Check kann man ignorieren, da das formular nur in einem bereich ist in dem nur registrierte user schreiben können)

    Dankeeeeee!!!!!
    ~*~*~*~*~*~*~*~*~*~*~*~*
    Wichtig: Joomla - FAQ
    ~*~*~*~*~*~*~*~*~*~*~*~*
    Web-Projekt: Warum tragen Musliminnen Kopftuch?

  2. #2
    War schon öfter hier
    Registriert seit
    04.10.2008
    Beiträge
    178
    Bedankte sich
    25
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    Hallo!

    Ich hoffe mir kann wirklich einer helfen.

    Mir ist aufgefallen, wenn ich im Originalzustand des Codes einen Beitrag aus dem Internet kopiere, der bereits Zeilenumbrüche enthält, wird der Text ebenfalls nicht in die Datenbank eingefügt!

    Anscheinend kommt der "Enter" konflikt hier schon zustande, und hat mit meinem Problem an sich nichts zu tun.

    In der com_yasb gibt es eine dynamic.php die anscheinend für den Eintrag in die DB verantwortlich (das einzige INSERT was ich im Quellcode finden konnte)

    Also wer ne Idee hat wie ich die Zeilenumbrüche in die DB kriege, bin sehr dankbar für jede Hilfe!

    Hier die gesamte Funktion...

    Code:
    	function addShout(&$request){
    		//lets get some vars ready
    		$my   =& JFactory::getUser();
    		$uid  = $my->id;
    		$filter = JFilterInput::getInstance();
    
    		$name = $filter->clean( $request->name );
    		$text = $filter->clean( $request->text );
    
    		$ip   = JRequest::getVar('REMOTE_ADDR','','SERVER');
    
    		//check the ip first
    		if( YaSBShoutHelper::isBanned() ){
    			//This ip is baned
    			$request->status = 1;
    			$request->message =  JText::_('DYNAMIC_ADD_BANNED') ;
    			return;
    
    		}
    
    		//check for right to post
    		if($uid == 0){
    			if( !$this->_config->get('allowGuestPost') ){
    				$request->status = 1;
    				$request->message = JText::_('DYNAMIC_ADD_NO_GUEST');
    				return;
    			}
    
    			//check captcha
    			if( $this->_config->get('useCaptcha') && !$this->checkCaptcha($request) ){
    				$request->status = 1;
    				$request->message =( JText::_('DYNAMIC_ADD_WRONG_CAPTCHA') );
    				return;
    			}
    
    			//check the values
    			$name = trim($name);
    			if(empty($name)){
    				$request->status = 1;
    				$request->message =( JText::_('DYNAMIC_ADD_NO_NAME') );
    				return;
    			}
    
    			$mnl = $this->_config->get('limitName');
    			$mnl = ( $mnl<1 || $mnl>50 )?50:$mnl;
    			if( $this->_config->get('guestTags') ){
    				if(strlen($name) > $mnl-2){
    					$name = substr($name,0,$mnl-2);
    				}
    				$name = '['.$name.']';
    			}else{
    				if(strlen($name) > $this->_config->get('limitName')){
    					$name = substr($name,0,$mnl);
    				}
    			}
    		}else{
    			$name = ($this->_config->get('defaultName')==1) ? ($my->fullname) : ($my->username) ;
    
    			$mnl = $this->_config->get('limitName');
    			$mnl = ( $mnl<1 || $mnl>50 )?50:$mnl;
    			if(strlen($name) > $this->_config->get('limitName')){
    				$name = substr($name,0,$mnl);
    			}
    
    		}
    
    		$text = trim($text);
    		if(empty($text) ){
    			$request->status = 1;
    			$request->message =( JText::_('DYNAMIC_ADD_NO_TEXT') );
    			return ;
    		}
    
    		//check for ban-words
    
    		if( $this->_config->get('enableBan') && $this->_config->get('banWordBehavior') > 0 ){
    			//Banwords are enabled.
    			$words = $this->checkBanWords($text);
    			if( !empty($words) ){
    				$request->status = 1;
    				//one banword has been found.
    				if( $uid > 0 && !$this->_config->get('banRegistered') ){
    					$request->message = JText::sprintf('DYNAMIC_ADD_BANWORD_USER',implode("', '", $words));
    					return;
    				}
    
    				if( $this->_config->get('banWordBehavior') == 2 ){
    					$duration = $this->_config->get('banWordDuration');
    					$request->message = JText::sprintf('DYNAMIC_ADD_BANWORD_DUR',implode("', '", $words),$duration );
    					YaSBShoutHelper::banIp( $ip , $duration );
    				}else{
    					$request->message = JText::sprintf('DYNAMIC_ADD_BANWORD_PERMANENT',implode("', '", $words)) ;
    					YaSBShoutHelper::banIp( $ip );
    				}
    				return;
    			}
    		}
    
    		//check for badwords
    		$badWord = $this->_config->get('badWordEnable');
    		if(  $badWord == 2 || ( $badWord == 1 && $uid==0 ) ){
    			$words = $this->replaceBadWords($text);
    			if( !empty($words) ){
    				$request->status = 2;
    				if( $this->_config->get('badWordBehavior') == 0 ){
    					$request->message = JText::sprintf('DYNAMIC_ADD_BADWORD_REPLACE',implode("', '", $words)) ;
    				}else{
    					$request->message = JText::sprintf('DYNAMIC_ADD_BADWORD_SKIP',implode("', '", $words)) ;
    					return;
    				}
    			}
    		}
    
    
    		$text = strip_tags($text);
    		if( $this->_config->get('limitText') > 0 ){
    			$text = substr($text,0,$this->_config->get('limitText'));
    		}
    		$text = htmlspecialchars( trim( $text ) );
    
    		$this->parseBBCode($text);
    
    		$this->_db->setQuery('INSERT INTO #__yasb (uid,name,text,ip) VALUES ( '. $uid.','.$this->_db->quote( $name ).', '.$this->_db->quote( $text ).', '.$this->_db->quote( $ip ).' )');
    
    		if(!$this->_db->query()){
    			$this->setError('DYNAMIC_ADD_DATABASE_ERROR');
    			return false;
    		}
    	}
    ~*~*~*~*~*~*~*~*~*~*~*~*
    Wichtig: Joomla - FAQ
    ~*~*~*~*~*~*~*~*~*~*~*~*
    Web-Projekt: Warum tragen Musliminnen Kopftuch?

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein