3

Joomla の最初のコンポーネントを開発しようとしています。Joomla 3 をインストールしましたが、かなりうまくいっています。

送信フォームがあるフロントエンドにフォーム検証 (クライアント側) を追加したいと考えています。

私のコードは次のとおりです。

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// Add form validation
JHTML::_('behavior.formvalidation');
?>
<form class="form-validate" id="myForm" method="post">
   <input name="email" type="text" class="required validate-email" size="30" />
   <button type="submit" class="validate">Submit form</button>
</form>

検証は機能しますが、メッセージ エラーは表示されません。フィールドだけです。エラー フィールドの HTML は次のとおりです。

<div id="system-message-container">
   <div id="system-message" class="alert alert-error">
      <h4 class="alert-heading"></h4>
      <div></div>
   </div>
</div>

では、検証にテキストを追加するにはどうすればよいでしょうか。コンポーネントの言語ファイルを作成する必要がありますか?

4

3 に答える 3

2

input フォーム送信ボタンをTry this-に変更する必要があります

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// Add form validation
JHTML::_('behavior.formvalidation');
?>
<form class="form-validate" id="myForm" method="post">
   <input name="email" type="text" class="required validate-email" size="30" />
  <input type="submit" name="submit" value="Submit" />
</form>

更新:-これも試すことができます-

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// Add form validation
JHTML::_('behavior.formvalidation');
?>
<form name="adminForm" id="myForm" method="post" onsubmit="return submitbutton();">
   <input  id="email" name="email" type="text" class="required validate-email" size="30" />
   <button type="submit" class="validate">Submit form</button>
</form>
<script type="text/javascript">
/* Override joomla.javascript, as form-validation not work with ToolBar */
function submitbutton() {   
    var f = document.adminForm;
    if (document.formvalidator.isValid(f)) {
        document.adminForm.submit(); 
        return true;
    }
    else {
        var msg = new Array();
        msg.push('Invalid input, please verify again!');           
        if($('email').hasClass('invalid')){
            msg.push('<?php echo JText::_('Invalid Email')?>');
        }
        alert (msg.join('\n'));
        return false;
    }     
}
</script>

これにより、クライアント側でフォームが検証されますが、サーバー側では検証されません。詳細については、これを確認してください - http://docs.joomla.org/Form_validation

于 2013-02-15T11:08:33.117 に答える