2016-12-15 4 views
1

auslösen Ich möchte manuell ein onclick-Ereignis für ein Eingabeelement auslösen. Ich habe etwas gesucht und den Code wie folgt geschrieben.Wie manuell ein Klick-Ereignis auf einem Dom in reactjs

<input type="date" ref={datePicker => this.datePicker = datePicker}/> 
      <button 
        onClick={(e) => { 
         this.datePicker.click() 
        }}> 
      Select the data 
      </button> 

Dann Code unten Ich habe auch versucht:

<input type="date" ref='datePicker'/> 
       <button 
         onClick={(e) => { 
          this.refs.datePicker.click() 
         }}> 
       Select the data 
       </button> 

Keines der oben Code funktioniert. Wenn ich auf den Knopf klicke, passiert nichts. Ich erwarte, die Datenauswahl ui zu öffnen.

+0

Können Sie jQuery verwenden? –

+0

@Ro Wenn reactjs dies unterstützt, möchte ich keine weitere Abhängigkeit in meine Anwendung einbinden. –

+0

@CodeBling Der datePicker wird im Tag definiert. Ich möchte die Datumsauswahl anzeigen, die vom Eingabe-Tag ausgelöst wurde. –

Antwort

1

habe ich versucht, Ihre Beispiele beide, und das <input> des Elements .click() Methode ist in der Tat genannt. Der Grund dafür, dass es nicht so funktioniert, wie Sie es erwarten, ist, dass der Klick nur den Tastaturfokus in das Element bringt, er nicht auf die Datumsauswahl klickt. Öffnen Sie die Datumsauswahl programmgesteuert currently not possible, zumindest nicht in allen Browsern.

+0

Gibt es eine Möglichkeit für mich, die ui anzupassen? –

+0

Siehe http://stackoverflow.com/a/15531938/675721. Ich denke du kannst kleinere Anpassungen vornehmen, aber nicht wirklich. Siehe auch https://developers.google.com/web/updates/2012/08/Quick-FAQs-on-input-type-date-in-Google-Chrome#how_do_i_change_the_apperance_of_the_date_picker –

0

versuchen, ohne es als eine Funktion aufrufen:

onClick={(e) => {this.datePicker.click}}>

+0

Ich habe versucht, es funktioniert nicht –

Verwandte Themen