Zend_Dojo_Form onSubmit

时间:2009-10-20 11:10:07

标签: zend-framework dojo zend-form

我有一个带有远程表单的contentPane,我正在尝试让表单提交,并保留在窗格中,或者在出错时再次显示表单或报告成功。 我确信这很容易,但我很难过,不是第一次,也不是最后一次,我确定。

商店表格:

    class Services_Form_Store extends Zend_Dojo_Form {
    protected $_actionUrl;
    public function __construct($actionUrl = null, $options=null)
    {
        parent::__construct($options);
        $this->setActionUrl($actionUrl);
        $this->init();
    }

    public function setActionUrl($actionUrl) {
        $this->_actionUrl = $actionUrl;
        return $this;
    }

    public function init()
    {
        $required = true;

        $this->setMethod('post')
             ->setAttrib('id', 'storeform')
             ->setAttrib('name', 'storeform')
             ->setAttrib('onSubmit', 'dojo.xhrGet(sub) return false;');

         $this->addElement('TextBox', 'location', array(
            'label'       => 'Location name :',
    'required'  => true,
            'trim'        => true,
            'propercase'  => true)
        );

        $submit = new Zend_Form_Element_Submit('submit');
  $submit->setLabel('save');
  $this->addElement($submit);
    }
}

我的观点:

    <script type="dojo/method" event="onSubmit">
 var sub = {
  url : "/storemamager/new",
  load : function(data){
   dojo.byId('storeform').value = data;
  },
  error : function(data){
   console.debug("error submitting data :" + data);
  },
  timeout : 2000,
  form : "storeform"
 }
    </script>
    <?php echo(empty($this->formResponse) ? '' : '<p class="errors">' . $this->formResponse . '</p>'); ?>
    <?php echo $this->form; ?>

所有这些都相当新,所以对wtf比率的线路表示道歉。

编辑:代码很乱

1 个答案:

答案 0 :(得分:1)

咆哮错误的树。 我的表单中带有onclick事件的按钮可以解决问题。

$this->addElement('Button', 'submit', array(
        'label'     =>  'Save',
        'onclick'   =>  'dojo.xhrPost(
                            {
                                url : "url",
                                timeout : 2000,
                                form : "form"
                            }
                        );'