以下のコードを使用して、.on("invalid")
関数を使用して、フォームを送信するときにフィールドにエラーがあるかどうかを検出できます。エラーがあった場合は、input
とtextarea
のどちらかが空か、長すぎるか短すぎるかをチェックし、クラス.error
を追加します。フォーム送信時に無効な入力フィールドを検出することはできますか?
しかし、コードを単純化して、関数内に追加のif
ステートメントを実行する必要がないようにする方法があるのだろうかと思います。ここ
$("form input, form textarea").on("invalid", function(event) {
var input1 = document.getElementById('input1');
var input2 = document.getElementById('input2');
if (!input1.value || input1.value.length < 9 || input1.value.length > 69) {
input1.classList.add('error');
setTimeout(function() {
input1.classList.remove('error');
}, 500);
}
if (!input2.value || input2.value.length < 21 || input2.value.length > 899) {
input2.classList.add('error');
setTimeout(function() {
input2.classList.remove('error');
}, 500);
}
});
.error {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="text" id="input1" minlength="8" maxlength="70" required>
<textarea id="input2" maxlength="900" required></textarea>
<input type="submit">
</form>
x
フォームが無効であることに起因フィールド(入力またはTEXTAREA)で私が探しているものの例である:
$("form input, form textarea").on("invalid", function(event) {
x.classList.add('error'); // variable x
setTimeout(function() {
x.classList.remove('error'); // variable x
}, 500);
});
私は理想的にはJavaScriptに固執したいと思いますが、jQueryが必要になることがあります。
ありがとうジョン、これは私の問題を解決するのに役立ちました(私はあなたが上に見ることができます私の質問に答えを掲載したいくつかの微調整で)、私はあなたの答えをupvotedしています。 –
確かに。これで問題が解決した場合は解決してください:) –