2017-05-17 6 views
0

フォームに表示されたエラーをカスタマイズする際に問題が発生しました。ここに問題があったコードがあります:setCustomValidityでカスタムエラーが発生し、フォームを送信しない

<html> 
<body> 
    <form action="/done.html"> 
     <input type="text" id="query" name="query" 
       required 
       oninvalid="this.setCustomValidity('What ?')"> 
     <input type="submit"> 
    </form> 
</body> 
</html> 

入力に何かを入力すると、問題なくフォームが送信されます。しかし、私がちょうどsubmitを押すと、入力がいっぱいになっても、それを再び提出することは不可能です!

私はonkeypress="this.setCustomValidity('')"を追加する必要があります。

なぜsetCustomValidityがしばらくしてから自動的にクリーニングされないのですか? 1トンのjsがない別のソリューションがありますか?

答えて

0

データなしでフォームを送信すると、機能が停止し、setCustomValidity関数を空の文字列で実行することが問題でした。

解決策は、フォームにonsubmit="setCustomValidity('')"を追加して、フォームを送信するたびに再起動するようにすることができるということに基づいています。

setCustomValidityが何をしているのか分かりませんので、私はあなたには分かりません。だからそれがうまくいくかどうか私に知らせてください。

+0

'onsubmit'は' onkeypress'と同じです。 'setCustomValidity'は、必須の属性[HTML標準で定義されている](https://html.spec.whatwg.org/multipage/forms.html#the-required-attribute)でエラーを指定するソリューションです。 –

関連する問題