我有一个视图来创建包含(除其他外)公司相关数据表的项目模型。在AJAX加载的部分视图(MVC4)上使用自动完成(JQuery)
我已经添加了一个按钮,确实AJAX调用,以检索的局部视图,并将其添加到该表:
$("#addCompanyRoleProject").click(function() {
cache: false,
$.get('CompanyRoleProjectEntryRow', function (result) {
$("#companyTable").append(result); // Add the row to the table
}, "html").done(function (result) {
});
return false;
});
局部视图是一个< TR>在至极的< TD之一>的具有输入字段:
<input class="company-role-project-company" type="text" data-containerPrefix="@ViewData["ContainerPrefix"]" />
我想通过AJAX接收到的局部视图内输入字段是一个自动完成(http://jqueryui.com/autocomplete/),使得用户能够从一组选项每个<输入选择>为桌子的每一排。
我似乎无法访问主视图中的AJAX调用通讯员字段。我试过在成功和完成函数上使用“filter()”和“find()”。
我可以把我的javascript代码的局部视图里面,但随后会被复制,更何况可能ID colisions = \
就如何实现这一目标的任何ideias?
编辑:
我相信我拥有的一切在我看来,正确引用:
@section Scripts {
@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/jqueryval")
<<<< My JS code is here >>>>
}
而且在我的网页的源代码,我可以看到:
<script src="/Scripts/jquery-1.7.1.js"></script>
<script src="/Scripts/jquery-ui-1.8.20.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
EDIT 2 :
我跟着达林季米特洛夫的意见,并将此Ajax的成功回调,结果追加到表后:
$('input.company-role-project-company', result).autocomplete({
...define source etc...
});
但是,当我在输入字段中键入一些,它的行为就像一个普通的文本字段... 在我使用ajax调用的过程中是否存在错误:请求局部视图,将它附加到表中,使其成为自动完成?
这是一个很好IDEIA,但我得到:“类型错误:$(...)自动完成不是一个函数”上萤火虫。你知道这个的原因吗? 是的,Jquery库被正确加载,因为我在主视图(部分视图之外)中创建了自动完成功能。 – user1987392 2013-02-21 14:15:25
你参考过'jquery-ui'脚本吗? – 2013-02-21 14:16:27
是的,如编辑所示。 – user1987392 2013-02-21 14:24:34