2013-09-04 7 views
11

Wie ist es/(oder nur "ist es?") Möglich, eine Web-Komponente zu erstellen, die in ein Formular eingefügt werden kann und genau wie jedes Eingabeelement beim Senden an den Server gesendet wird? Mit anderen Worten, können Web-Komponenten zum Erstellen benutzerdefinierter Eingabeelemente verwendet werden?Können Web-Komponenten zum Erstellen benutzerdefinierter Eingabeelemente verwendet werden?

+1

Beispiel für ein benutzerdefiniertes Eingabeelement, das von Google mithilfe von Polymer erstellt wurde: https://www.polymer-project.org/components/paper-input/demo.html – Ajedi32

Antwort

5

Verwenden Sie die folgenden Browser-Konfigurationsoptionen vor dem Test:

  • Chrome: about:flags => Enabled Experimental WebKit Features/Enable Experimental Web Platform
  • Firefox: about:config => dom.registercomponents.enabled

document.registerElement zu ermöglichen.

den extends Parameter document.registerElement Verwenden einer nativen Eingangselement zu erstrecken:

/* Cross-browser fallback */ 
document.registerElement = document.registerElement || document.register; 
/* Element registration using x-tag format */ 
var MegaButton = document.registerElement('x-button', { 
    prototype: Object.create(HTMLButtonElement.prototype), 
    extends: 'button' 
    }); 

Referenzen

+0

[Hier ist eine Demo, die nicht zu sein scheint Arbeiten in Chrome oder Firefox mit dem von Ihnen bereitgestellten Code] (http://jsfiddle.net/sBWr2/). Fehle ich etwas? Ich habe überprüft, ob ich "Enable experimental Web Platform features" aktiviert habe. – zzzzBov

+0

@zzzzBov Danke für die Köpfe hoch. Ich habe [die Geige] (http://jsfiddle.net/sBWr2/46/) aktualisiert, damit es in Firefox funktioniert und [ein anderes Beispiel] gefunden (http://jsfiddle.net/Buttonpresser/9W4pe/), das funktioniert Verwenden von Stylesheet-Regeln zum Definieren der Anzeigeeigenschaften des benutzerdefinierten Tags. –

+0

Um klar zu sein, das Problem, das ich mit benutzerdefinierten Elementen habe scheint nicht mit Registrierung, Rendering oder Styling zu sein. Wenn sie Formulardaten darstellen sollen, funktionieren die Dinge nicht. Ich habe noch kein Beispiel gesehen, wo ein benutzerdefiniertes Element registriert werden kann, so dass es als Teil eines Formulars eingereicht werden kann, oder angeklickt, um ein Formular zu senden. – zzzzBov