2013-06-05 20 views
6

Sto tentando di abilitare il pulsante di invio quando alcuni campi modulo sono compilati. Ho trovato un pezzo di codice javascript che funziona, ma ho un problema con textarea fiel che è trasformato da tinymce ... Come prenderlo?tinymce v4 jquery: come catturare onkeyup?

mio html:

<form id="form_id1"> 
<fieldset> 
<legend>Personal</legend> 
Name: <input type="text" size="30" /><br /> 
Email: <input type="text" size="30" /><br /> 
Date of birth: <input type="text" size="10" /><br /> 
Address : <textarea size="30"></textarea><br /> 

</fieldset> 
<input type="submit" value="Submit" /> 
</form> 

mio javascript:

$(document).ready(function() 
{ 

    $('#form_id1 input:submit').attr("disabled", true); 
    var textCounter = false; 
    $('#form_id1 input:text, #form_id1 textarea').keyup(check_submit); 

    function check_submit() { 
     $('#form_id1 input:text, #form_id1 textarea').each(function() 
      { 
      if ($(this).val().length == 0) { 
       textCounter = true; 
       return false; 
       } 
      else { 
       textCounter = false; 
      } 
     }); 

     $('#form_id1 input:submit').attr("disabled", textCounter); 
    } 
}); 

mio TinyMCE init:

tinymce.init({ 
       selector: "textarea", 
       language: 'fr_FR', 
       image_advtab: true, 
       menubar:false, 
       forced_root_block: false, 
       plugins: ["link","code","media","image","textcolor", "emoticons"], 
       toolbar: "bold italic forecolor backcolor alignleft aligncenter alignright alignjustify link unlink image media emoticons", 
      }); 

Grazie

risposta

19

In tinymce init aggiuntivo:

setup: function(ed) { 
    ed.on('keyup', function(e) { 
     console.log('Editor contents was modified. Contents: ' + ed.getContent()); 
     check_submit(); 
    }); 
} 

Tenere presente che potrebbe essere necessario trovare l'istanza dell'editor anziché la textarea per ottenere il valore effettivo. Se hai fatto la textarea hanno id="textarea-tiny-mce"

tinymce.get('textarea-tiny-mce').getContent(); 
2
window.onload = function() { 
     tinymce.get('content').on('keyup',function(e){ 
      console.log(this.getContent().replace(/(<[a-zA-Z\/][^<>]*>|\[([^\]]+)\])|(\s+)/ig,'')); 
     }); 
    } 
0
tinymce.init({  
     setup: function (editor) { 
      editor.on('keyup', function (e) { 
       console.log(e); 
       //custom logic 
      }); 
     } 
    }); 
Problemi correlati