JFormを取得し、そこにいくつかのフィールドを取得しました。別のフィールドの値が「0」の場合、そのフィールドを無効にしたいと思います。ロード中にフォームを準備することでそれができることはわかっていますが、その「ライブ」を解決したいので、ユーザーがクリックすると、readonlyがすぐに設定または設定解除されます。
どうすればこれを解決できますか?私はいくつかのJQueryを実行する必要があると思います-残念ながら、私はjQueryやこれについて何も知りません。
前もって感謝します :-)
Joomlaは「showon」と呼ばれる新しいフォームフィールド属性を導入しました。フォームフィールドxmlにその属性を追加できます。
属性showonを追加すると、別のフィールドの値に基づいてフィールドを非表示にすることができます。
「foo」が「1」に設定されている場合にのみフィールド「bar」を表示する構文:
<field
name="foo"
type="list"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="bar"
type="text"
showon="foo:1"
/>
複数の値を照合するには、値のコンマ区切りのリストを提供できます。お気に入り showon="foo:1,2"
これはPullRequestで導入されました: https://github.com/joomla/joomla-cms/pull/3379 、Joomla 3.2.4以降で利用可能です。
次のように、値に基づいてdisabled
属性を追加することにより、jQueryを使用してこれを簡単に実現できます。
jQuery(document).ready(function($) {
var inputFirst = $('#jform_choose0');
var inputSecond = $('#jform_choose1');
inputFirst.on('change', function(){
if ($(this).val() == 0) {
inputSecond.prop('disabled', true);
}
else {
inputSecond.prop('disabled', false);
}
});
});
これは、テストするためのライブプレビューです。
もちろん、独自の入力フィールドに従って定義されているIDを変更する必要があります。