2016-09-12 18 views
0

Error: cannot call methods on autocomplete prior to initialization; attempted to call method 'destroy'への回答に関しては、明らかに新しい質問として尋ねる必要があります。私はJSのオートコンプリートライブラリを使用するSymfony sfWidgetFormJQueryAutocompleterプラグインを使用しようとしていますが、JSのPHPレンダリング機能は次のとおりです。上記のコードで以下のコードに記述されている$(this.target).find( 'input')。autocomplete()行はどこに追加しますか?未知のエラー:初期化の前にオートコンプリートのメソッドを呼び出すことはできません。メソッドを呼び出そうとしました

sprintf(<<<EOF 
<script type="text/javascript"> 
    jQuery(document).ready(function() { 
    jQuery("#%s") 
    .autocomplete('%s', jQuery.extend({}, { 
     dataType: 'json', 
     parse: function(data) { 
     var parsed = []; 
     for (key in data) { 
      parsed[parsed.length] = { data: [ data[key], key ], value:  data[key], result: data[key] }; 
     } 
     return parsed; 
     } 
    }, %s)) 
    .result(function(event, data) { jQuery("#%s").val(data[1]); }); 
    }); 
</script> 
EOF 
     , 
     $this->generateId('autocomplete_'.$name), 
     $this->getOption('url'), 
     $this->getOption('config'), 
     $this->generateId($name) 
    ); 
+0

私はすべてのフォーラムを通じて見ていると、誰もがこれを追加すべき場所を示していないようにみえます。オートコンプリートとJQuery/JQuery UIのための標準的なSymfony 1.4プラグインは、他のものは変更されていません。 – websolprov

答えて

0

それを試してみてください。

return $this->renderTag('input', array('type' => 'hidden', 'name' => $name, 'value' => $value)). 
      parent::render('autocomplete_'.$name, $visibleValue, $attributes, $errors). 
      sprintf(<<<EOF 
<script type="text/javascript"> 
    jQuery(document).ready(function() { 
    jQuery("#%s") 
    .autocomplete('%s', jQuery.extend({}, { 
     dataType: 'json', 
     parse: function(data) { 
     var parsed = []; 
     for (key in data) { 
      parsed[parsed.length] = { data: [ data[key], key ], value: data[key], result: data[key] }; 
     } 
     return parsed; 
     } 
    }, %s)) 
    .result(function(event, data) { jQuery("#%s").val(data[1]); }); 
    }); 

    // manually trigger autocomplete 
    jQuery("#%s").find('input').autocomplete(); 
</script> 
EOF 
     , 
     $this->generateId('autocomplete_'.$name), 
     $this->getOption('url'), 
     $this->getOption('config'), 
     $this->generateId($name), 
     $this->generateId('autocomplete_'.$name) 
    ); 
    } 
関連する問題