2

私は zend フォームを使用しており、クライアント側の検証を検証しようとしています。私のコードは次のようなものです:

$this->addElement('text', 'email', array(
    'label' => 'Email:',
    'required' => true,
    'class' => 'span12',
    'attribs' => array(
        'required' => true,
        'pattern'=> "^[A-Za-z0-9._]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$"
    )
));

$this->setAttrib('id', 'lead_form_creation');
$this->addElement('text', 'name', array(
    'label' => 'Name:',
    'required' => true,
    'class' => 'span12',
    'attribs' => array(
        'required' => true,
        'pattern' => '[a-zA-Z]{4,}'
    )

));
$this->addElement('text', 'phone', array(
    'label' => 'Phone:',
    'required' => true,
    'class' => 'span12',
    'attribs' => array(
        'required' => true,
        'pattern' => '\d{4,}'
        )
    ));

上記の 3 つのフィールドにより、フォームを作成できます。また、私のコードは上記の 3 つのフィールドも検証しています。しかし、有効なメールアドレスを書いてタブを押すと、名前フィールドと電話番号フィールドが同時に赤く表示されます。ただし、ユーザーの観点からは、名前フィールドのみにする必要があります。次に、名前が検証されずにタブを押すと、名前フィールドと電話フィールドにエラーが表示されます。attrbs属性または他の場所で言及しなければならないことがあるかどうか教えてください。前もって感謝します。

4

1 に答える 1

0

コードのタイプミス (属性は属性である必要があります):

$this->addElement('text', 'email', array(
    'label' => 'Email:',
    'required' => true,
    'class' => 'span12',
    'attributes' => array(
        'required' => true,
        'pattern'=> "^[A-Za-z0-9._]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$"
    )
));

$this->setAttrib('id', 'lead_form_creation');
$this->addElement('text', 'name', array(
    'label' => 'Name:',
    'required' => true,
    'class' => 'span12',
    'attributes' => array(
        'required' => true,
        'pattern' => '[a-zA-Z]{4,}'
    )
));

$this->addElement('text', 'phone', array(
    'label' => 'Phone:',
    'required' => true,
    'class' => 'span12',
    'attributes' => array(
        'required' => true,
        'pattern' => '\d{4,}'
        )
  ));
于 2013-07-29T12:27:53.117 に答える