Like Tree1Danke
  • 1 Beitrag von fRagiLeMOD
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
2590
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    fRagiLeMOD ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    31
    Moin,

    ich hoffe, es gibt hier ein paar Leute, die schon mal etwas von dem TinyMCE Texteditor gehört haben. Dieser wandelt Textareas in einen Texteditor um.

    Nun möchte ich aber die Textarea vor dem Abschicken überprüfen, ob sich darin Inhalt befindet und wenn NICHT, soll eine Fehlermeldung erscheinen.

    Allerdings erscheint beim ersten mal Abschicken trotz Inhaltes in der Textarea die Fehlermeldung und erst wenn ich noch mal abschicke, geht es schließlich. So soll es eigentlich nicht sein - das muss behoben werden. Jedoch weiß ich nicht WIE.

    Der Javascript Code zum überprüfen von Feldern befindet sich im <head> Bereich und der Javascript Code zum einbinden des TinyMCE Editors im <body> Bereich.

    Hier die wichtigen Code Schnipsel:

    HTML-Code:
    <script language="javascript" type="text/javascript">
      var form = "";
      var submitted = false;
      var error = false;
      function check_input(field_name) 
      {
        if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) 
        {
          var field_value = form.elements[field_name].value;
          if (field_value == '') 
          {
            error = true;
          }
        }
      }
      function check_form(form_name) 
      {
        if(submitted == true) 
        {
          alert(unescape("Bitte warten Sie einen Moment, die Daten wurden bereits abgeschickt."));
          return false;
        }
        error = false;
        form = form_name;
        check_input("content");
        if (error == true)
        {
          alert(unescape("Einige Pflichtangaben wurden nicht angegeben, bitte beachten. (*)"));
          return false;
        } 
        else 
        {
          submitted = true;
          return true;
        }
      }
    </script>
    <!-- ... weiterer Inhalt ... -->
    <form action="admin.php" onsubmit="return check_form(new);" method="post" id="new" enctype="multipart/form-data">
    <!-- ... weiterer Inhalt ... -->
      <tr>
        <td width="240" valign="top">Inhalt:</td>
        <td><textarea name="content" cols="70" rows="16"></textarea></td>
      </tr>
    <!-- ... weiterer Inhalt ... -->
    Ich hoffe, jemand kann mir helfen. Ist sehr dringend! Danke!
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.112
    Moin,

    TinyMCE wandelt, reell betrachtet, keine Textareas in Texteditoren um.
    Es blendet das Textarea aus, und stattdessen ein editierbares iFrame ein.
    Das Textarea behält seinen ursprünglichen Inhalt(bei dir vermutlich garnichts), bis das Formular gesendet wird.
    Beim Senden des Formulares wird der Inhalt des iFrames in das Textarea übertragen.

    Du müsstest also den Inhalt des iFrames prüfen, und nicht den Inhalt des Textareas.

    Wie du an diesen Inhalt kommst, steht hier: http://www.tutorials.de/forum/javasc...ml#post1803484
     

  3. #3
    fRagiLeMOD ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    31
    Moin,

    schon mal vielen Dank für Deine Infos. Ich muss sagen, ich bin keine Leuchte in sachen Javascript und habe es anhand des dort gezeigten Beispiels und weiterer Codeschnipsel aus dem Internet mal erweitert.

    Jedoch funktioniert es nun gar nicht mehr, wenn ich das Formular abschicke - weder im Firefox, noch im IE. Habe wohl etwas falsch gemacht!? Bitte schaue mal in den Code. Hierbei handelt es sich um die Funktion check_tmce_textarea().

    Die abzufragenden Felder existieren allesamt ("content", "title").

    Ich bin mir ziemlich sicher, dass ich was falsch gemacht habe, aber ich habe keine Ahnung, was.

    Quellen der Codeschnipsel
    Der von Dir vorgeschlagene Beitrag, und:
    http://tinymce.moxiecode.com/punbb/v....php?pid=43458 (Beitrag #27, Funktion "getHTML_TinyMCE(editor_id)")

    Hier mein aktueller Code

    HTML-Code:
    <!-- .... weiterer Code ... -->
    <script language="javascript" type="text/javascript">
      var form = "";
      var submitted = false;
      var error = false;
      function check_input(field_name) 
      {
        if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) 
        {
          var field_value = form.elements[field_name].value;
          if(field_value == '') 
          {
            error = true;
          }
        }
      }
      function check_tmce_textarea(area_name)
      { 
        obj = form.area_name;
        if(obj.contentDocument)
        {
          area_value = obj.contentDocument.body.innerHTML; // FFox
        }
        else
        {
          area_value = top.frames[area_name].form.body.innerHTML; // IE
        }
        if(area_value == '') 
        {
          error = true;
        }
      }
      function check_form(form_name) 
      {
        if(submitted == true) 
        {
          alert(unescape("Bitte warten Sie einen Moment, die Daten wurden bereits abgeschickt."));
          return false;
        }
        error = false;
        form = form_name;
        check_tmce_textarea("content");
        check_input("title");
        if (error == true)
        {
          alert(unescape("Einige Pflichtangaben wurden nicht angegeben, bitte beachten. (*)"));
          return false;
        } 
        else 
        {
          submitted = true;
          return true;
        }
      }
    </script>
    <!-- .... weiterer Code ... -->
    <form action="admin.php" onsubmit="return check_form(newPage);" method="post" name="newPage" enctype="multipart/form-data">
    <!-- .... weiterer Code ... -->
     

  4. #4
    fRagiLeMOD ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Beiträge
    31
    So, habe es selber herausgefunden. Es funktioniert jetzt, und zwar mit folgender angepasster Funktion:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    function check_tmce_textarea(area_name)
    {
      var area_content = tinyMCE.get(area_name).getContent();
      if(area_content == '' || area_content == '<p></p>') 
      {
        error = true;
      }
    }

    Oben einfach die alte Funktion check_tmce_textarea() mit dieser hier ersetzen.
    Sven Mintel bedankt sich. 

Ähnliche Themen

  1. TinyMCE speichert den Inhalt nicht!
    Von kavanin im Forum Content Management Systeme (CMS)
    Antworten: 3
    Letzter Beitrag: 22.05.10, 12:59
  2. tinymce ändert meinen Inhalt
    Von themonk im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 10.08.09, 14:19
  3. Inhalt einer Textarea
    Von dg87 im Forum Javascript & Ajax
    Antworten: 7
    Letzter Beitrag: 22.11.07, 11:54
  4. Inhalt sprengt Textarea?!
    Von Headymaster im Forum PHP
    Antworten: 2
    Letzter Beitrag: 29.12.06, 16:45
  5. Textarea Inhalt löschen?!
    Von Blaubmania im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 10.02.05, 20:54