私はJoomlaを使用しています! 3.4コアフォームの検証とそれは完全に起動するようですが、アラートに追加されたエラーメッセージは空白であるため、エラーを確認できません。
何が悪いのですか?
これが私のJForm XMLマニフェストです。
<?xml version="1.0" encoding="utf-8"?>
<form class="form-validate">
<fieldset name="lead" label="Apply now!" description="Complete the form below to receive your unique code">
<field name="name" type="text" hiddenLabel="true" class="input-block validate required" hint="Name"
description="Your full name" label="Name" filter="string" required="true" />
<field name="surname" type="text" hiddenLabel="true" class="input-block validate required" hint="Surname"
description="JGLOBAL_FIELD_ID_DESC" filter="string" required="true" />
<field name="cellphone" type="text" hiddenLabel="true" class="input-block validate required"
hint="Cellphone number" required="true" />
<field name="email" type="text" hiddenLabel="true" class="input-block validate required validate-email"
hint="Email address" filter="string" required="true" />
<field name="membership_number" type="text" hiddenLabel="true" class="input-block validate required"
hint="Membership number"/>
</fieldset>
</form>
そして、私のフォームHTMLはこれでレンダリングされます:
<form id="pb-apply-lead-form" action="<?php echo JRoute::_('index.php'); ?>" method="post" class="form-validate">
<fieldset class="pb-apply-lead-fieldset">
<?php
# Load keep-alive, will prevent form from expiring
JHtml::_('behavior.keepalive');
JHtml::_('behavior.tooltip');
if (J33)
JHtml::_('behavior.formvalidation'); // J!3.3
if (J34)
JHtml::_('behavior.formvalidator'); // J!3.4
/** @var JForm $lead_form */
$lead_form = JForm::getInstance('lead', JPATH_COMPONENT . '/models/forms/lead.xml');
$fieldset = $lead_form->getFieldsets();
?>
<div class="pb-title-container">
<h3><?php echo $fieldset['lead']->label; ?></h3>
<h4><?php echo $fieldset['lead']->description; ?></h4>
</div>
<div class="form-fields">
<div class="row">
<?php
# Render out fieldset, use override for fields provided in layouts
echo $lead_form->renderFieldset('lead');
?>
</div>
</div>
<div class="form-button">
<input type="submit" name="submit" value="<?php echo JText::_('COM_BULKBUYER_VIEW_APPLY_FORM_BUTTON_SUBMIT'); ?>" class="validate btn btn-primary"/>
<input type="hidden" name="option" value="com_bulkbuyer"/>
<input type="hidden" name="task" value="apply.submitlead"/>
<input type="hidden" name="return" value="<?php echo JUri::current(); ?>"/>
<input type="hidden" name="id" value="<?php echo $item->id; ?>"/>
<?php echo JHtml::_('form.token'); ?>
</div>
</fieldset>
</form>
助けてくれてありがとう。
問題は、エラーメッセージを設定していないため、エラーメッセージが表示されないことです。あなたが含める必要があります:
message = "このフィールドは必須です!"
Description = ""を使用しており、これはフィールドのツールチップに表示されます。
したがって、コードは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<form class="form-validate">
<fieldset name="lead" label="Apply now!" message="Complete the form below to receive your unique code">
<field name="name" type="text" hiddenLabel="true" class="input-block validate required" hint="Name"
message="Your full name" label="Name" filter="string" required="true" />
<field name="surname" type="text" hiddenLabel="true" class="input-block validate required" hint="Surname"
message="JGLOBAL_FIELD_ID_DESC" filter="string" required="true" />
<field name="cellphone" type="text" hiddenLabel="true" class="input-block validate required"
hint="Cellphone number" required="true" />
<field name="email" type="text" hiddenLabel="true" class="input-block validate required validate-email"
hint="Email address" filter="string" required="true" />
<field name="membership_number" type="text" hiddenLabel="true" class="input-block validate required"
hint="Membership number"/>
</fieldset>
</form>
参照: https://docs.joomla.org/Text_form_field_type
JFormテキストフィールドの使用法について。