DOM要素に対する機能2
"js/src/45_dom-special.js"の機能です。このファイルでは、DOM要素に対する加工を含みます。
フォーム値の保存
<input class="js-save" type="text" id="save-test1" value="書き換えてください"> <label><input class="js-save" type="checkbox" id="save-test2">チェック!</label> <select class="js-save" id="save-test3"><option value="1">1<option value="2">2<option value="3">3</select>
要素のIDやnameに関連付けて値を保存します。値はブラウザのローカルストレージに保存されます。
Ver3.32から type="radio" に対しても有効です。
フォーム操作のenable/disalbe
<label><input type="checkbox" class="js-enable" data-target="#mybutton1">ボタンを有効にします</label> <button id="mybutton1">ボタン</button> <label><input type="checkbox" class="js-disable" data-target="#mybutton2">ボタンを無効にします</label> <button id="mybutton2">ボタン</button>
checkedが変更された時、targetを有効/無効にします。ボタン以外の要素に指定した場合は、value が空("")であるかどうかで判断されます。
radioの場合だけやや特殊になります。サンプルから解読してください。
<label><input type="radio" name="radio1" class="js-enable" data-state="0" data-target="#r-target" checked>レモン</label> <label><input type="radio" name="radio1" class="js-enable" data-state="1" data-target="#r-target">スイカ</label> <label><input type="radio" name="radio1" class="js-enable" data-state="1" data-target="#r-target">パイナップル</label><br> レモン以外の人は記入してください <input type="text" id="r-target">
レモン以外の人は記入してください
Ver3.02からjs-enableまたはjs-disableの同じクラスからならば、同一targetを重複できるようになりました。
-<button id="disX">どれか一つで無効化</button> --<label><input type="checkbox" class="js-disable" data-target="#disX">無効A</label> --<label><input type="checkbox" class="js-disable" data-target="#disX">無効B</label> --<label><input type="checkbox" class="js-disable" data-target="#disX">無効C</label> -<button id="enaX">どれか一つで有効化</button> --<label><input type="checkbox" class="js-enable" data-target="#enaX">有効A</label> --<label><input type="checkbox" class="js-enable" data-target="#enaX">有効B</label> --<label><input type="checkbox" class="js-enable" data-target="#enaX">有効C</label>
- Ver3.04から、select要素に対しても指定できるようになりました。
- Ver3.10から、selectの値判定を数値で行うオプション(data-type="int")が追加されました。
フォーム操作による要素の表示・非表示
<label><input type="checkbox" class="js-switch" data-target="#js-switch-target">表示、非表示の切り替え→<span id="js-switch-target">文字列</span></label> <input type="button" value="ボタン" class="js-switch" data-target="#js-switch-tar2" data-hide-val="表示する" data-show-val="非表示にする"> <blockquote id="js-switch-tar2">ブロック要素ですですです。</blockquote>
ブロック要素ですですです。
- A要素をスイッチにすることはできません。
- data-negative="1" を指定するとオン/オフの扱いが反転します。
- data-delay で表示切替速度を設定できます。(Ver3.50-)
色選択ボックスを表示
<input type="text" class="color-picker">
data('onChange') に関数を設定すると、ColorPickerの onChange イベント発生時に callback します。
フォームの値チェックと確認
<form method="GET" action="https://adiary.org" class="js-check" data-confirm="ページを移動してもいいですか?"> <button type="submit">公式ページに移動</button> </form>
- js-checkクラスにより、フォームに送信チェックと確認の機能を持たせることができます。
- data-confirmが指定されている場合、submit前に確認ダイアログが表示されます。
- data-targetにjQueryセレクタが指定されている場合、該当要素が1個以上チェックされている時にのみフォームが送信されます。またこの際confirmメッセージ中の%cは、チェックされている個数(数値)に置換されます。
- data-focus に cancel が設定されているとき、ダイアログのデフォルト選択ボタンは「キャンセル」になります。
押したボタンによって、confirmの挙動を変更したい場合は、ボタンとフォームの両方にjs-checkクラスを設定し「data-confirm」を指定してください。
accordion機能
- "js-accordion" クラスを持つ要素に対して、アコーディオン機能を初期化します。
DnDエミュレーション
- "treebox" クラスを持つ要素に対して、スマホ用のDnDエミュレーションを初期化します。