2010-01-21 42 views
1

我正在使用Scripaculous'就地收集编辑器来向用户列出要动态分配给联系人的客户列表。我传递了一个值参数,详见documentation,所以当选择生成时,它将自动选择当前关联客户(如果没有一个已经提供了默认设置)。使用Ajax.InPlaceCollectionEditor动态更新自动选择值选项

这很适用,除非用户第二次选择原始值时点击“编辑我”字段,而不是最近选择的客户。这是因为原来对InPlaceCollectionEditor的调用没有改变。我的问题是,是否有任何方法来更新自动选择值而不动态更新整个scriptaculous调用(这意味着通过ajax再次选择所有的客户,这可能但不是理想的。)

这里是代码:

<div id="editme">Test 1</div> 
    <script type="text/javascript"> 

    new Ajax.InPlaceCollectionEditor(
    'editme', 
    '/usercustomer/editCustomer/id/811', 
    { collection: [['192981', "Test 1"],['192893', "Test 2"],['192894', "Test 3"] ... ], 
     ajaxOptions: {method: 'get'} 
     , value: 192893 } // specifying the value parameter auto selects object id 192893 
    ); 
</script> 

这是InPlaceCollectionEditor的限制还是有其他解决方法?

回答

0

传递一个变量而不是硬编码的数字作为'value'。在拨打电话之前将该变量设置为初始值或选定值。

+0

Ajax.InPlaceCollectionEditor调用正在更新div id“editme”,而不是上面代码中所示的ajax.InPlaceCollectionEditor调用的参数在div之外。正如我所提到的“我的问题是,是否有任何方法来更新自动选择值,而不动态更新整个scriptaculous调用” – markb

+0

什么时候你想更新自动选择值?正如我所说的,如果您使用(可能是全局的)变量而不是硬编码值,则可以在您进行ajax调用之前随时设置它。如果您只想设置选定的选项,则必须访问select元素并将其设置为selectedIndex proerty。 –