2011-06-22 13 views
1

sfWidgetFormSelectDoubleListのバリデーションはありますか?フォームが有効でない場合に問題が発生します[!isValid()]、以前のデータでページをリロードします。選択肢には前回選択した値が表示されず、次回の選択肢から値を選択しても値が得られません。Symfony sfWidgetFormSelectDoubleListのバリデーション

私のフォームは、この

$this->setWidgets(array(
      'event_title' => new sfWidgetFormInputText(), 
      'client_list' => new sfWidgetFormSelectDoubleList(array(
       'choices' => $client, 
       'associated_first' => false, 
       'label_associated' => '', 
       'label_unassociated' => '' 
      )), 
)); 

$this->setValidators(array(
      'event_title' => new sfValidatorString(array('required' => true)), 
      )); 

//のように、私はそれを知っていないとバリデータを設定することができませんでした私のコントローラ

if($form1->isValid()){ 

       $resource->title = $frmField['event_title']; 
       $resource->save(); 
       //var_dump($frmField); 
       return $this->renderPartial('newEvent', array('form1' => $form1)); 
      } else { 
       var_dump($frmField); 
       return $this->renderPartial('createEvent', array('form1' => $form1)); 
      } 

です。 2回目以降に提出しても何の価値もないのは全くわかりません。

答えて

0

私はそれが検証の問題ではないと思います。選択した値は決して提出されません。私は、たとえフォームが有効であっても、値は保存されていないと思います(データベース上で確認できます)。 「選択された値」の選択に値が設定されているが、この値は決して選択されないというのは問題ではないだろう。その選択内のすべてのオプションは存在するだけでなく、「選択」されている必要があります。プラグインにその部分がありません。私は、フォームが(jqueryによって)提出されるとき、すべてのオプションを恐ろしく選択して解決しました。 次のようなもの:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#form_html_id').submit(function(e) { 
     // You should find this html id for the "selected values" select 
     $('#your_entity_client_list option').attr('selected','selected'); 
     return true; 
    }); 
}); 
</script> 

この回避策をお勧めします。 私の悪い英語のために申し訳ありません。