2012-01-03 23 views
1

sfWidgetFormJQueryAutocompleterを使用してデータベースからオートコンプリートフィールドを正常に実装しましたが、リストされた値が必要ない場合は新しい値を挿入する方法を見つけることができません。symfony 1.4 sfWidgetFormJQueryAutocompleter新しい値を挿入

新しい値でフォームを送信するたびに、「必要な」エラーが表示されます。これは、自動補完フィールドがフォームウィジェットとは異なる名前を持つためです。

私のウィジェット構成が

'city'      => new sfWidgetFormJQueryAutocompleter(array(

            'url' => url_for('trainingdetail/ajaxcity'), 

            'config' => '{ width: 220,max: 5,highlight:false ,multiple: false,multipleSeparator: ",",scroll: true,scrollHeight: 300}' 
)) 
+1

sfWidgetFormJQueryAutocompleterは、sfWidgetFormDoctrineChoiceフォームウィジェットのレンダラーです。新しい値を作成することはできません。既存のものから選択することができます(ただ選択フィールドのマスカレード) – palmic

答えて

1

である私はこれを行うための、よりエレガントな方法があるかもしれないと思ったが、次のように私はそれを解決しました。

sfWidgetFormJqueryAutocompleterを使用すると、実際のフォームフィールドはウィジェットの別のフィールドに置き換えられ、元のフォームフィールドは非表示フィールドに変換されます。

私は、可視フィールドに値があるかどうかを単純にチェックし、そうであれば、フォームクラスで定義された元のフォームフィールドである隠しフィールドに値を割り当てます。

私のサンプルコードは、フォーム送信時にトリガされます。

ここ
<script type="text/javascript"> 
$(document).submit(function cty(){ 
    if($('#autocomplete_trn_training_city').val().length>0) 
    { 
     $('#trn_training_city').val($('#autocomplete_trn_training_city').val()); 
    } 
}); 
</script> 

#autocomplete_trn_training_cityはjQueryのウィジェット と#trn_training_cityによって生成されたフィールドのIDがデータベースに送信された元のフォームフィールドのIDです。

関連する問題