[英]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.