2011-04-11 46 views
2

我正在使用Jquery UI自动完成,我想知道如何发回多个值。Jquery UI自动完成如何向服务器端发送多个值?

我试图

$('#id').autocomplete 
      ({ 
       source: 'MyURL', 
       minLength: 2, 
       extraParams: { Id: 1 } 
      }); 

这似乎并没有工作。 Option for auto complete

编辑

我现在有这个

$('#id').autocomplete({  
       source: function (request, response) 
       { 
        $.ajax({ 
         url: 'url', 
         data: { 
          term: request.term, 
          Id: 1 
         }, 
         success: function (data) 
         { 
          response(data); 
         } 

        }); 
       }, 
       minLength: 2 
      }); 

我控制器

return Json("Test",JsonRequestBehavior.AllowGet); 

我也试过

return Content("Test"); 

但是现在我得到了'T','E','S','T'而不是'Test',它由于某种原因分裂了它。

+0

请注意,您正在查看的文档不是*当前jQueryUI自动填充小部件的一部分。该文档位于http://jqueryui.com/demos/autocomplete。 – 2011-04-12 12:30:51

+0

@安德鲁·惠特克 - 嗯,我不'看看应该用什么。 – chobo2 2011-04-13 01:11:56

回答

1

你很近;该自动完成构件期望候选的阵列向后:

此数据应根据 所提供的术语进行过滤,并且可以在上述用于 简单的本地数据中所描述的格式的任何 (与字符串阵列或 对象 - 阵列与标签/值/两 属性)

return Json(new[] {"Test"}, JsonRequestBehavior.AllowGet) 
0

您可以使用自动完成选项接受多个值: http://jqueryui.com/demos/autocomplete/#multiple
从那里你可以发送整个价值和分裂出来的一个分隔符(可能是逗号)和发送的每一个到一个数组,从那里开始工作。

+0

我看不到如何将多个值发送回服务器。 – chobo2 2011-04-12 01:46:28

+0

通过将多个输入作为单个字符串发送到服务器,您可以让服务器根据分隔符(例如逗号)分隔每个元素。这样你发送一件东西,但服务器可以使用多个预期的值。大多数语言都有类似.split()这样的功能。你在服务器上使用什么语言? – Waffle 2011-04-12 02:19:29

+0

我在寻找更好的方法。如果我需要,我宁愿不分裂。 – chobo2 2011-04-13 01:10:21