2015-06-25 26 views
8

Ho il seguente componente del modulo in una finestra di dialogo lucernario, dopo l'invio, se la finestra di dialogo viene riaperta contenente il modulo, contiene il valore inviato in precedenza. Qualcuno può dirmi come fermarlo e cancellare il valore textarea ogni volta che si apre la finestra di dialogo?Clear text area testo dopo invio

Qui è la mia componente:

var AddNoteForm = React.createClass({ 


componentDidMount: function() { 

     React.findDOMNode(this.refs.notes).value = ""; 
}, 
handleSubmit: function (event) { 
    event.preventDefault(); 

    var notes = React.findDOMNode(this.refs.notes).value; 

    var details = { 
     studentId: this.props.studentId, 
     schoolId: this.props.schoolId, 
     notes: notes 
    }; 

    this.props.onSubmit(details); 
}, 

render: function() { 
    return (
     <form className="pure-form pure-form-aligned" 
      onSubmit={this.handleSubmit}> 
      <div className="pure-control-group"> 
       <label htmlFor="notes">Note</label> 
       <textarea ref="notes" id="notes" placeholder="Note..." > 
       </textarea> 

      </div> 
      <div className="pure-controls"> 
       <input type="submit" value="Save" /> 
      </div> 
     </form> 
    ); 
} 
}); 

module.exports = AddNoteForm; 

risposta

14

Fondamentalmente il modulo non sta ottenendo smontato. Quindi scrivere il codice in componentDidMount non ha senso. Quindi la soluzione rapida per il tuo problema sarebbe quella di cancellare la casella textarea dopo aver letto il valore in handle metodo submit

handleSubmit: function (event) { 
    event.preventDefault(); 

    var notes = this.refs.notes; 

    var details = { 
    studentId: this.props.studentId, 
    schoolId: this.props.schoolId, 
    notes: notes.value 
    }; 

    notes.value = ""; // Unset the value 
    this.props.onSubmit(details); 
}, 
+0

Grazie per la risposta. L'ho provato, ma il valore rimane nel dialogo, qualche idea? – Bomber

+1

cambiato in "=" e funziona! grazie – Bomber

+0

Sì offcourse !! Il mio errore :) Errore di digitazione :) Felice Coding .. – teenu