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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

1171閲覧

form外のチェックボックスと送信ボタンを連動したい

ayuayuayu

総合スコア68

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2023/03/10 08:01

編集2023/03/10 08:46

form外のチェックボックスにチェックを入れたら送信出来て、
チェックしてないと送信できないようにしたいのですが、disabled が解除できません、、、
書き方が間違っているのでしょうか?
それともチェックボックスの判定のコードがちがいますか、、、?

追記、書き忘れです。すいません
これにボタンが無効な時、チェックボックスにチェックを入れてくださいとアラートを付ける予定です、、 

<label><input type="checkbox"id="checkbox"><span>同意する</span></label> <form method="POST" onSubmit="return check_cc()"> <button type="submit" class="regist_btn"id="button" disabled>アップロード</button> </form> const button = document.getElementById('button'); // ボタン要素にクリックイベントを追加する button.addEventListener('click', () => { // チェックボックスの要素を取得する const checkbox = document.getElementById('checkbox'); // チェックボックスがチェックされているかどうかを確認する if (checkbox.checked) { // チェックがある場合の処理 button.disabled = true; } else { // チェックがない場合の処理 button.disabled = false; } }); function check_cc(){ if(window.confirm("アップロードしますか?")){ return true; }else{ return false; } }

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

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

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

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

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

guest

回答3

0

ベストアンサー

javascript

1<script> 2document.addEventListener('change', ()=>{ 3 btn.disabled=!ch.checked; 4}); 5</script> 6<label><input type="checkbox" id="ch"><span>同意する</span></label> 7<form> 8<input name="hoge" > 9<button type="submit" class="regist_btn" id="btn" disabled>アップロード</button> 10</form>

追記

ボタンは押せるけど、チェックがついていないとサブミットできないということでよろしいですか?
disabledになったボタンは押せないので

javascript

1<script> 2document.addEventListener('submit',e=>{ 3 if(!ch.checked){ 4 e.preventDefault(); 5 alert('チェックボックスにチェックを入れてください'); 6 } 7}); 8</script> 9<label><input type="checkbox" id="ch"><span>同意する</span></label> 10<form> 11<input name="hoge" > 12<button type="submit" class="regist_btn">アップロード</button> 13</form>

投稿2023/03/10 08:17

編集2023/03/10 08:51
yambejp

総合スコア114839

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

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

ayuayuayu

2023/03/10 08:44

いつもありがとうございます。 大変申し訳ないのですが、書き忘れていて、、 これにボタンが無効な時、チェックボックスにチェックを入れてくださいとアラートを付けたいのですが そうなると document.addEventListener('change', ()=> このコードではできなくなりますか、、、? disabledの切り替えはこのコードでできました!
yambejp

2023/03/10 08:51

ちょっと仕様がわからないところもあるのでとりあえず追記しておきました
ayuayuayu

2023/03/10 09:01

完璧です、、、 こんなに短いコードで出来るなんて思いませんでした、、 また勉強させてもらいました。本当にいつもありがとうございます。
guest

0

書き方が間違っているのでしょうか?

「ボタン要素にクリックイベントを追加する」とコメントに書いてあるとおりのイベントをセットしているのですが、そのボタンが無効化されている以上、ボタンを押すことはできず、このイベントも発生しません。

チェックボックスの変更時など、変更処理を行うタイミングを変える必要があります。

投稿2023/03/10 08:10

編集2023/03/10 08:10
maisumakun

総合スコア145184

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

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

0

buttonはdisabledになっているので押せません。
checkboxのイベントの方にbuttonのdisabledを制御するロジックを入れてみてはどうでしょうか。

checkbox on → buttonが押せるように
checkbox off → buttonが押せないように

投稿2023/03/10 08:09

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問