2012-01-03 67 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 2012-01-03 11:56:38

回答

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的小部件產生磁場ID 和#trn_training_city是被提交到數據庫原始表單域的id。