フロントエンドフォームでshowonフォームフィールド属性を使用してみましたが、機能しませんでした。
ここに示した例でも機能していません:https : //docs.joomla.org/Form_field#Showon
不足しているものはありますか?フロントエンドで使用する場合、特定のスクリプトを手動で含める必要がありますか?
私はjoomla 3.4.1を使用しています。問題がある場合に備えて、フロントエンドはT3テンプレートです。
アイデアや解決策はありますか?
編集:フォーム
<?xml version="1.0" encoding="utf-8"?>
<form>
<fieldset name="main">
<field name="foo" type="list" >
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field name="bar" type="text" showon="foo:1" />
<field name="foo2" type="text" />
<field name="bar2" type="text" showon="foo2:1" />
</fieldset>
</form>
テンプレート
<?php
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');
?>
<form action="...>"
method="post"
onsubmit="return false;"
name="adminForm" id="adminForm" class="form-validate">
<div class="form-horizontal adminform">
<fieldset class="">
<legend><?php echo 'test'; ?></legend>
<div class="span6">
<?php foreach ($this->form->getFieldset() as $field): ?>
<div class="control-group">
<div class="control-label"><?php echo $field->label; ?></div>
<div class="controls"><?php echo $field->input; ?></div>
</div>
<?php endforeach; ?>
</div>
</fieldset>
</div>
<?php echo JHtml::_('form.token'); ?>
</form>
編集2:joomlaコアファイルで解決策を見つけました
上記のテンプレートコードが次のように更新された場合:
<div class="span6">
<?php foreach ($this->form->getFieldset() as $field): ?>
<div class="control-group">
<div class="control-label"><?php echo $field->label; ?></div>
<div class="controls"><?php echo $field->input; ?></div>
</div>
<?php endforeach; ?>
</div>
に:
<div class="span6">
<?php foreach ($this->form->getFieldset() as $field): ?>
<?php
$class = '';
$rel = '';
if ($showon = $field->getAttribute('showon')) {
JHtml::_('jquery.framework');
JHtml::_('script', 'jui/cms.js', false, true);
$id = $this->form->getFormControl();
$showon = explode(':', $showon, 2);
$class = ' showon_' . implode(' showon_', explode(',', $showon[1]));
$rel = ' rel="showon_' . $id . '[' . $showon[0] . ']"';
}
?>
<div class="control-group<?php echo $class; ?>"<?php echo $rel; ?>>
<div class="control-label"><?php echo $field->label; ?></div>
<div class="controls"><?php echo $field->input; ?></div>
</div>
<?php endforeach; ?>
</div>
できます
だから私はいつもこの部分を手動で追加することになっていますか?
Docuはこれについて何も述べていません、私は手動でcms.jsファイルをロードして自分でcontrol-grouptagを構築する必要がありますか?奇妙に見える