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

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

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

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

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

633閲覧

bootstrap + jQuery でフォーム画面のinputのdisabled要素を動的に制御したい。

do_slice

総合スコア26

jQuery

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

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/10/09 14:12

編集2017/10/09 17:02

###前提・実現したいこと
bootstrapとLaravelでフォーム画面を作っています。jQueryを使ってフォームの要素をdisabledにするなど動的に制御したいと考えています。

下記のコードで、htmlの"about_date"に値がある場合にのみ、"main_contents_setting"classのチェックボックスを有効に、それ以外の時は無効(disabled)にしたいのですが、下記のコードではdisabledになりませんでした。

bootstrapとjQueryが何か干渉してしまっているのでしょうか。
アドバイスいただければ幸いです。
よろしくおねがいいたします。

###発生している問題・エラーメッセージ

下記のコードだとcheckboxが無効になりません。

エラーメッセージは特に出ておりません。

###該当のソースコード

[html] <div class="form-group row"> <input name="about_date" id="about_date" type="date" class="form-control" value="{{ old('about_date', $about_date) }}"/> </div> <div class="form-group row"> <div class="main_contents_setting"> <input type="checkbox" name="month_main" id="month_main"> <input type="checkbox" name="year_main" id="year_main"> </div> </div> [about_date.js] $(function() { $("#about_date").change(function() { if( $(this).val() === "" ) { $('#month_main').prop('disabled', true); $('#year_main').prop('disabled', true); } else { $('#month_main').prop('disabled', false); $('#year_main').prop('disabled', false); } }); });

###試したこと
about_date.jsのイベントを拾うところのメソッドはchange以外にも下記を試しましたが動作しません。
keypress
blur

disabledにするためのメソッドは下記を試しましたが切り替わりませんでした。
addClass/removeClass
attr

###補足情報(言語/FW/ツール等のバージョンなど)
下記の通りです。
#Laravelは事象にあまり関係がないような気がします。

bootstrap 3.3.7
Laravel5.4
jQuery1.11.3

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

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

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

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

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

kei344

2017/10/09 16:21

「うまくできない」とは「何をしたときに」「どうなると思って」「どうなったのか」を具体的に記述されたほうが回答を得られやすいと思います。
do_slice

2017/10/09 17:03

ご指摘ありがとうございます。修正してみました。
guest

回答1

0

ベストアンサー

動くサンプル:https://jsfiddle.net/pnpe832z/


下記のコードではdisabledになりませんでした。

削除したらdisabledになりますが、ページを開いたタイミングで行いたいのであれば .trigger() でイベントを起こしておけば良いと思います。

動くサンプル:https://jsfiddle.net/pnpe832z/1/

【.trigger() | jQuery API Documentation】
http://api.jquery.com/trigger/

投稿2017/10/09 17:10

kei344

総合スコア69407

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

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

do_slice

2017/10/09 17:28

kei344さん、ありがとうございましたm( )m 教えていただいて方法で思っていた動作になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問