質問編集履歴
3
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -570,6 +570,14 @@
|
|
570
570
|
|
571
571
|
### ご回答を受けての訂正後
|
572
572
|
|
573
|
+
やりたいことが実は質問当時は矛盾していて、
|
574
|
+
|
575
|
+
未記入項目があり、ボタンを押したときにしたい挙動は「エラーメッセージを表示 かつ 完了画面には遷移しない」
|
576
|
+
|
577
|
+
であり、ボタンそのものを押せなくしたいわけではなかったと自覚しました。
|
578
|
+
|
579
|
+
よって、成功したコードをいかに訂正致します。
|
580
|
+
|
573
581
|
```js
|
574
582
|
|
575
583
|
$(function () {
|
@@ -584,7 +592,7 @@
|
|
584
592
|
|
585
593
|
//送信ボタンをクリック
|
586
594
|
|
587
|
-
$("#
|
595
|
+
$("#contact input, #contact textarea").on("change",function () {
|
588
596
|
|
589
597
|
//チェック用の変数sendflag これがすべてtrueであれば送信の許可を出す
|
590
598
|
|
2
<script> var sendFlag = true;</script>の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -58,6 +58,8 @@
|
|
58
58
|
|
59
59
|
```HTML
|
60
60
|
|
61
|
+
<script> var sendFlag = true;</script>
|
62
|
+
|
61
63
|
<form data-aos="fade-up" name="myForm" method="post" target="dummyIframe" onsubmit="submitted=true;" action="ここにはURLを入れています" id="contact">
|
62
64
|
|
63
65
|
<dl id="textSection">
|
1
ご回答を受けての訂正後
test
CHANGED
File without changes
|
test
CHANGED
@@ -563,3 +563,111 @@
|
|
563
563
|
エディタ:VScode
|
564
564
|
|
565
565
|
ブラウザ:クローム
|
566
|
+
|
567
|
+
|
568
|
+
|
569
|
+
### ご回答を受けての訂正後
|
570
|
+
|
571
|
+
```js
|
572
|
+
|
573
|
+
$(function () {
|
574
|
+
|
575
|
+
//jqueryを用いたバリデーション
|
576
|
+
|
577
|
+
//全てのアラート分を非表示にする クラスでまとめて
|
578
|
+
|
579
|
+
|
580
|
+
|
581
|
+
$(".alert").hide();
|
582
|
+
|
583
|
+
//送信ボタンをクリック
|
584
|
+
|
585
|
+
$("#js-submit").click(function () {
|
586
|
+
|
587
|
+
//チェック用の変数sendflag これがすべてtrueであれば送信の許可を出す
|
588
|
+
|
589
|
+
var sendFlag = true;
|
590
|
+
|
591
|
+
|
592
|
+
|
593
|
+
//一行入力フィールドのチェック
|
594
|
+
|
595
|
+
if (!$("#text").val()) {
|
596
|
+
|
597
|
+
//入力がない:アラート分を表示
|
598
|
+
|
599
|
+
$("#textSection .alert").show();
|
600
|
+
|
601
|
+
sendFlag = false;//入力がなければfalseに
|
602
|
+
|
603
|
+
} else {
|
604
|
+
|
605
|
+
//入力がある:アラート分を非表示
|
606
|
+
|
607
|
+
$("#textSection .alert").hide();
|
608
|
+
|
609
|
+
}
|
610
|
+
|
611
|
+
|
612
|
+
|
613
|
+
//複数行textareaのチェック
|
614
|
+
|
615
|
+
if (!$("#textarea").val()) {
|
616
|
+
|
617
|
+
//入力がない:アラート分を表示
|
618
|
+
|
619
|
+
$("#textareaSection .alert").show();
|
620
|
+
|
621
|
+
sendFlag = false;//入力がなければfalseに
|
622
|
+
|
623
|
+
} else {
|
624
|
+
|
625
|
+
//入力がある:アラート分を非表示
|
626
|
+
|
627
|
+
$("#textareaSection .alert").hide();
|
628
|
+
|
629
|
+
}
|
630
|
+
|
631
|
+
|
632
|
+
|
633
|
+
|
634
|
+
|
635
|
+
});
|
636
|
+
|
637
|
+
//ポリシーのチェック項目
|
638
|
+
|
639
|
+
$('#js-submit').prop('disabled', true);
|
640
|
+
|
641
|
+
$('#privacyCheck').on('click', function () {
|
642
|
+
|
643
|
+
if ($(this).prop('checked') == false) {
|
644
|
+
|
645
|
+
$('#js-submit').prop('disabled', true);
|
646
|
+
|
647
|
+
} else {
|
648
|
+
|
649
|
+
$('#js-submit').prop('disabled', false);
|
650
|
+
|
651
|
+
}
|
652
|
+
|
653
|
+
});
|
654
|
+
|
655
|
+
|
656
|
+
|
657
|
+
//フォームが送信されないようにするには以下のreturn falseが必要
|
658
|
+
|
659
|
+
//上記の各項目がすべてfalseになることなく、trueであればreturn false(送信の無効化)を改めて解除して、送信の有効化にする
|
660
|
+
|
661
|
+
if (sendFlag == false) {
|
662
|
+
|
663
|
+
return false;//falseであれば送信を許可しない(そうでなければ送信)
|
664
|
+
|
665
|
+
}
|
666
|
+
|
667
|
+
|
668
|
+
|
669
|
+
|
670
|
+
|
671
|
+
});
|
672
|
+
|
673
|
+
```
|