2010-02-25 9 views
1

Malgré de nombreux essais et erreurs, je n'arrive pas à faire fonctionner le widget NumberTextBox. Je continue à recevoir ce message d'erreur:Erreur avec dijit.form.NumberTextBox

Catchable fatal error: Argument 4 passed to Zend_Dojo_View_Helper_NumberTextBox::numberTextBox() must be an array, null given

La chose étrange est: événement j'ai essayé cet exemple directement à partir de la page des exemples ZF et il a échoué avec la même erreur

  ->addElement(
      'NumberTextBox', 
      'numberbox', 
      array(
       'label' => 'NumberTextBox', 
       'required' => true, 
       'invalidMessage' => 'Invalid elevation.', 
       'constraints' => array(
        'min' => -20000, 
        'max' => 20000, 
        'places' => 0, 
       ) 
      ) 
     ) 

Donc, je suis à une perte maintenant. Si quelqu'un a le temps de regarder le code trouvé here, votre aide serait grandement appréciée. Je sais que c'est quelque chose que je néglige. C'est toujours le cas.

Répondre

1

Si vous configurez décorateurs, assurez-vous de changer ViewHelper à DijitElement. J'ai rencontré ce problème et c'était la cause.

+0

Merci beaucoup, votre commentaire m'a aidé. c'est un +1. regarde le code que j'ai utilisé ci-dessous. –

0

Prise de vue dans l'obscurité: essayez de se débarrasser de la « » à la fin de « lieux » => 0, »

0

J'utilise un formulaire de base,

BaseForm extends Zend_Dojo_Form{ 



    public $elementDecorators = array(
      'DijitElement', 
      array(
        array('data' => 'HtmlTag'), 
        array('tag' => 'div', 'class' => 'element') 
       ), 
       array('Label', 
        array('tag' => 'div', 'class' => 'element-label') 
        ), 
       array(array('row' => 'HtmlTag'), 
        array('tag' => 'div', 'class' => 'element-row') 
        ) 
     );  

    ... init(){} 
    .... construct(){} 
} 

MonFormulaire étend BaseForm {

constructor(){ 
     $this->starts = new Zend_Dojo_Form_Element_DateTextBox("starts"); 
     $this->starts->setLabel('Starting from') 
      ->setDecorators($this->elementDecorators); 

}

}

J'ai fait le code source aussi simple que possible, pour représenter l'idée de ce que je veux dire.