繁体   English   中英

jQuery.val() 实际上没有改变值

[英]jQuery .val() Not Actually Changing Value

更新:我觉得我可能遗漏了一条关键信息......列类型是个人或组类型。 我尝试了一行文本,它工作得很好。 不注册为空。但对于其他条目/预填充输入需要使用“人员”或“组”列来确定其他输入。 使用元数据

我有一个 SP 列表,在我的第一列中,我使用 AJAX 让表单自动填充用户。

它用正确的值填充字段没有问题。 我的问题是,当您可以看到自动放置在那里的值并点击表单提交时,它仍然将该字段读取为空白并告诉我“您不能将其留空”。

您会在那里看到该值,但它有点被推到文本框的左角,隐藏在输入框默认占位符文本旁边。 我想知道这是否也可能导致问题? 是否可以隐藏占位符文本?

如果我单击文本框,然后按任意键(Enter/空格/等),它会注意到自动插入的值。

在这被标记为重复之前,我已经通过帖子和线程进行了尽职调查,并找到了与此问题类似的帖子,但解决方案不起作用。 喜欢这里的帖子: val() doesn't trigger change() in jQuery

这是我的电话和附加信息:

$(function(){
    $.ajax({
        url: webUri + "/_api/sp.userprofiles.peoplemanager/GetMyProperties",
        type: "GET",
        headers: {
            "Accept": "application/json; odata=verbose"
        },
        success: function(dataCurrentUser){
            console.log(dataCurrentUser)
            $("[title='User']").val(dataCurrentUser.d.AccountName).keyup().change();
        }
    })
})

我的测试代码供您参考:

<script>
  $(function () {
    $.ajax({
      url: _spPageContextInfo.webAbsoluteUrl + "/_api/sp.userprofiles.peoplemanager/GetMyProperties",
      type: "GET",
      headers: {
        "Accept": "application/json; odata=verbose"
      },
      success: function (dataCurrentUser) {
        console.log(dataCurrentUser)
        var ppTitle = "people";
        //$("[title='people']").val(dataCurrentUser.d.DisplayName).keyup().change();
        var _PeoplePicker = $("div[title='" + ppTitle + "']");
        var peoplePickerEditor = _PeoplePicker.find("[title='" + ppTitle + "']");
        var _PeoplePickerTopId = _PeoplePicker.attr('id');
        peoplePickerEditor.val(dataCurrentUser.d.DisplayName);
        var ppobject = SPClientPeoplePicker.SPClientPeoplePickerDict[_PeoplePickerTopId];
        ppobject.AddUnresolvedUserFromEditor(true);
      }

    })
  })
</script>

博客参考: SharePoint 中的人员选取器字段操作使用 JavaScript (JSOM)

更新:

<script>
    $(function () {
        SP.SOD.executeFunc('clientpeoplepicker.js', 'SPClientPeoplePicker', function () {
            $.ajax({
                url: _spPageContextInfo.webAbsoluteUrl + "/_api/sp.userprofiles.peoplemanager/GetMyProperties",
                type: "GET",
                headers: {
                    "Accept": "application/json; odata=verbose"
                },
                success: function (dataCurrentUser) {
                    console.log(dataCurrentUser)
                    var ppTitle = "people";
                    //$("[title='people']").val(dataCurrentUser.d.DisplayName).keyup().change();
                    var _PeoplePicker = $("div[title='" + ppTitle + "']");
                    var peoplePickerEditor = _PeoplePicker.find("[title='" + ppTitle + "']");
                    var _PeoplePickerTopId = _PeoplePicker.attr('id');
                    peoplePickerEditor.val(dataCurrentUser.d.DisplayName);
                    var ppobject = SPClientPeoplePicker.SPClientPeoplePickerDict[_PeoplePickerTopId];
                    ppobject.AddUnresolvedUserFromEditor(true);
                }

            })
        })
    });

</script>

测试结果: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM