我使用SPServices.SPCascadeDropdowns链接自定义NewForm中的两个查找字段以用于自定义列表。
我想要做的是根据当前创建的项目提供创建新项目的选项,并且我可以使用上一项目的所有值,但是我很难设置查找字段的值将SPCascadeDropdowns用于给定值。
我发现我可以使用以下内容来更改字段的值:
$("select[title='ParentLookupField']").val(prevParentLookupFieldValue);
$("select[title='ChildLookupField']").val(prevChildLookupFieldValue);
这似乎适用于SPCascadeDropdowns的父列,但即使它发生了变化 该值似乎不会触发SPCascadeDropdowns的更改,因为子列不会根据父级的更改进行更新。
示例:
$().SPServices.SPCascadeDropdowns({
relationshipList: "ChildList",
relationshipListParentColumn: "ParentValue",
relationshipListChildColumn: "Title",
parentColumn: "ParentLookupField",
childColumn: "ChildLookupField",
simpleChild: true,
completefunc: function () {
$("select").each(function (index, item) {
var title = item.title;
if (title === ""ParentLookupField"," || title === ""ChildLookupField",") {
$(item).find("option").each(function (index, item) {
var text = $(item).text();
if (text === "(None)") {
$(item).remove();
}
});
}
});
}
});
$("select[title='ParentLookupField']").val(prevParentLookupFieldValue);
$("select[title='ChildLookupField']").val(prevChildLookupFieldValue);
那么,如何使用SPCascadeDropdowns设置查找字段的初始值并使SPCascadeDropdowns触发子字段的更改?
答案 0 :(得分:0)
这取决于如何将更改注册到下拉列表。
如果使用$ control.val(新值)设置值,则可能需要手动调用更改事件。
我使用它在任何浏览器上安全地启动onchange事件:
//I have a utility class called KWizComCascadingLookup defined earlier
KWizComCascadingLookup.FireEvent = function (elm, event) {
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, false, true);
elm.dispatchEvent(evt);
}
else
elm.fireEvent("on" + event);
}
我称之为:
KWizComCascadingLookup.FireEvent(elm, "change");
现在应该调用您的活动。奇怪的是,jQuery .val()虽然没有调用它......
另外 - 不确定您是否感兴趣,我们正处于O365应用商店中全功能级联查找字段的最终测试阶段,我们也有完整的信任产品。
如果您有兴趣,可以从kwizcom dot com的销售中获取更多信息。
谢谢,Shai Petel SharePoint MVP 副总裁兼KWizCom公司副总裁 www.kwizcom.com