質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

button

HTMLで用いる<button>タグです。

ラジオボタン

ラジオボタンはフォームに使われる要素のひとつであり、ユーザに限られた選択肢からひとつの答えを選んでもらうというものです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1032閲覧

お問い合わせフォーム:テキストフォームが必須項目にならない

natumema

総合スコア6

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

button

HTMLで用いる<button>タグです。

ラジオボタン

ラジオボタンはフォームに使われる要素のひとつであり、ユーザに限られた選択肢からひとつの答えを選んでもらうというものです。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2021/09/08 09:02

編集2021/09/08 09:03

少し複雑なお問い合わせフォームのテキストエリアを必須項目にしたいです。

<フォームの仕様>

-ラジオボタンにチェックをすると、テキストエリアが出てきます。
(チェックが入ると表示するようにjQueryで制御)
-ラジオボタンもですが、テキストエリアも必須項目にしたいのですが、できません。
(ラジオボタンにチェックが入った時のみ必須にしたい)
そもそもラジオボタンの中にテキストエリアを入れるのが間違いなのかもしれませんが・・・
方法をご存知の方、参考になりそうなURLなどなんでも良いのでお力をお貸しいただけると幸いです。
よろしくお願いいたします。

<フォームのHTML>

<div id="form" class="container"> <form action="php/mailform.php" method="post" id="mail_form"> <dl> <dt>お問い合わせの種類<span>Inquiry Kind</span></dt> <dd class="required"> <ul> <li><label><input type="radio" class="kind" name="kind" value="サイトについて" required="required" />サイトについて</label></li>

**<li><label><input type="radio" class="kind" name="kind" value="商品について" id="check" required="required" />商品について</label></li>

<li><label class="box box_jan">商品名 <input type="text" id="box_name" name="kind" value="" required="required" /></label></li> <li><label class="box box_jan">商品バーコード<input type="text" id="box_jan" name="kind" value="" required="required"/></label></li> ** <li><label><input type="radio" class="kind" name="kind" value="キャンペーンについて" required="required" />キャンペーンについて</label></li> <li><label><input type="radio" class="kind" name="kind" value="ご感想" required="required" />ご感想</label></li> <li><label><input type="radio" class="kind" name="kind" value="その他" required="required" />その他</label></li> </ul> </dd>
</dl>
<p id="form_submit" class="text-center"><input type="button" id="form_submit_button" value="送信する" onclick="doPost();" /></p> <input type="submit" value="不可視ボタン" style="display:none" name=submitBtn> </form> </div>

<フォームのjQuery>

<script> $('#check').click(function() { $(".box").slideToggle(this.checked); }); </script> <script> function doPost(){ $("input[name=submitBtn]").click(); } </script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

disabledを併用してください

javascript

1$(function(){ 2 $('[name=kind]').on('change',function(){ 3 var flg=$('#check').prop('checked'); 4 $('#box_name,#box_jan').prop('disabled',!flg).closest('li').toggle(flg); 5 }).eq(0).trigger('change'); 6});

投稿2021/09/08 09:31

yambejp

総合スコア116734

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

natumema

2021/09/08 09:44

ご回答ありがとうございます! そちらを記載すると、オフラインだとアラートが出るようになりましたが、サーバー上にアップすると、未入力でも、アラートが出ずに送信できてしまいました。 PHPに問題があるのでしょうか?
yambejp

2021/09/08 09:50

name=kindのradioがrequiredなら送信されないはずですが
natumema

2021/09/08 10:14

だめですね・・・ required="required" が作用しなくなる条件などがあるんでしょうか・・・
natumema

2021/09/08 10:20

一瞬アラートがメッセージが出ていました、一瞬アラートが出て、すぐに解除されているようです。
yambejp

2021/09/09 06:49

$('#box_name,#box_jan').prop('disabled',!flg).closest('li').toggle(flg); をいったん $('#box_name,#box_jan').prop('disabled',!flg); にしてみてくださいdisabledされたinputが表示されますよね? 商品についてをチェックしたときdisabledが解除されるので requiredが効いているはずです
natumema

2021/09/17 11:04

ご回答ありがとうございました。 今回、開示していないPHPの方の設定も絡んでおり、残念ながら、yambejp様のコードだけでは解決とならなかったのですが、おそらくそれ以外では、こちらのコードで動くようになったのかな、と思いますので、ベストアンサーとさせてください。 心が折れそうだったので、とても励みになりました。 お付き合いありがとうございました。とても勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問