1

select2 プラグインを使用しているため、クライアント側 (html5) でエラーが発生した場合、select2 プラグイン (要素の位置) が原因で、間違った位置に表示されます

。要素ですが、ポスト検証はそのままにしておきます。

$inputFilter = new InputFilter();   
 $this->add(array(
                'name' => 'supplierName',
                'type' => 'Text',
                'attributes' => array('id'=>'supplierName','required' => true)
            ));
$this->setInputFilter($inputFilter);
4

1 に答える 1

1

フォーム定義の検証を無効にします。

// フォーム設定内の例..

$this->add(array(
    'name' => 'fieldname',
    'attributes' => array(
        'type'  => 'text',
        'class' => 'something',
        'required'  => FALSE,
    ),
    'options' => array
          'label' => 'Some Field',
    ),
));

ただし、入力フィルター定義で有効のままにします

// 入力フィルタ設定の例 ..

$inputFilter->add($factory->createInput(array(
    'name'     => 'fieldname',
    'required' => TRUE,
    'filters'  => array(
        array('name' => 'Int'),
    ),
)));

入力フィールドに必要な属性が適用されるかどうかを決定するのはフォーム定義です。

実際の入力フィルターは、データを検証するときに必要かどうかを決定します (投稿など)。

これにより、クライアント側の必須チェックを使用せずにフィールドを空白のままにすることができると思いますが、入力フィルターの検証チェックが実行されるときにフィールドが必須であることを確認します。

于 2013-07-18T10:03:46.687 に答える