Ich habe eine Komponente, die eine paper-input
einkapseln, wie Sie im folgenden Code sehen:Polymer: verhindern Einreichung Form, wenn die Eingabe ungültig
<dom-module id="my-p">
<template>
<div class="my-class>
<paper-input
type="number"
value="{{value}}"
name="{{name}}"
error-message="Error"
invalid="{{invalid}}"
label="{{name}}"
allowed-pattern="[0-9,]"
required="{{required}}"></paper-input>
</div>
</template>
<script>
Polymer({
is: 'my-p',
properties: {
name: String,
value : {
type: Number,
notify : true
},
required : Boolean,
invalid: {
type: Boolean,
value: false,
notify: true
},
}
});
</script>
</dom-module>
Außerdem habe ich eine andere Komponente eine vorherige Komponente in eine Form hinzuzufügen:
<dom-module id="my-form">
<template>
<h2>My test</h2>
<form is="iron-form" id="form" method="get">
<my-p name="my input 1" value="{{value1}}" invalid="{{!_m(value1, value2)}}" required="true"></my-p>
<my-p name="my input 2" value="{{value2}}" invalid="{{!_m(value1, value2)}}"></my-p>
<paper-input name="paper" type="number" label="paper" required="true"></paper-input>
<button type="submit">Send</button>
<paper-button raised id="btn" on-click="_send">Send</paper-button>
</form>
</template>
<script>
Polymer({
is: 'my-form',
_m(v1, v2) {
var n1 = parseInt(v1);
var n2 = parseInt(v2);
var valid = n1 >= (n2 + 2);
return valid;
},_send() {
console.log("ok2");
}
});
</script>
</dom-module>
required
Attribut funktioniert, wenn ich auf erste Schaltfläche einreichen: Formular nicht, wenn erforderlichen Eingaben sind leer vorgelegt.
Das Problem ist, wenn eine Eingabe invalid
ist: Formular wird gesendet.
Kann ich die Übermittlung des Formulars verhindern, wenn invalid
eingegeben wird?
verwendet Kuba, 'querySelectorAll 'Funktion gibt nichts zurück. – Amparo
ok, dann können Sie 'Polymer.dom (this.root) .querySelectorAll' verwenden, wenn dies nichts zurückgibt, dann ist der Fehler im Selektor. Also versuche einfach nur 'Polymer.dom (this.root) .querySelectorAll (" my-app ")' und sag, ob das funktioniert. Mann, den du selbst ausprobieren musst. Ich werde dich nicht durch alles führen :) –