Jquery和sharepoint,试图从一个字段中获取一个值,并将其放入另一个字段中

oogrdqng  于 2023-02-15  发布在  jQuery
关注(0)|答案(3)|浏览(107)

所以我遇到了一个奇怪的问题,我试图从一个名为name的文本字段中获取值,并将其放入另一个名为title的字段中。
基本上,我一直在做的是:我使用的字段值是从字段的id部分获得的。

<script type="text/javascript" src="https://secureteams.app.aexp.com/sites/fiucmc/SiteAssets/jquery-3.1.0.min.js">
    // getting the field
     var email = $("#FileLeafRef_8553196d-ec8d-4564-9861-3dbe931050c8_$onetidIOFile").val();

    // setting the value
    $("#Title_fa564e0f-0c70-4ab9-b863-0177e6ddd247_$TextField").val( email );

   </script>

就算我不是最擅长JQuery的,我真的不认为这应该那么难。

nxowjjhe

nxowjjhe1#

var email = $("input[title='FileLeafRef']").val();
$("input[title='Title']").val( email );

如果FileLeafRef是一个字段标题,应该可以正常工作。但是您需要将此脚本添加到文档上载表单中,因为从您对Thriggle问题的回答来看,我不确定代码是否运行在正确的位置。

2j4z5cfb

2j4z5cfb2#

最后我找到了解决方案!它是基于这个网站:Setting value to TextBox field
必须遵循的重要步骤:
1.转到列表设置〉高级设置〉在对话框中显示表单(设置为假);
1.返回列表并单击以添加新项目;
1.此时,单击以编辑页面,然后添加脚本Web部件
1.现在只需要复制并粘贴下面的代码(您必须添加表单的id,我只是在使用一个示例

<script language='javascript' type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script>
$(document).ready(function()
{
	$.ajax(
	{
		url: "http://yourSharepointSite/_api/SP.UserProfiles.PeopleManager/GetMyProperties?$select=Email",
		method: "GET",
		headers: 
		{
			"accept": "application/json;odata=verbose"
		},
		
		success: function (data)
		{
			var result = data.d;
			var userMail= result.Email;

                        var textBoxCurrentUserEmail = $("#ctl00_ctl33_g_58328422_c761_4475_a673_5c3f263a5dab_FormControl0_V1_I1_T3");
                        var textBoxIsAuthor = $("#ctl00_ctl33_g_58328422_c761_4475_a673_5c3f263a5dab_FormControl0_V1_I1_T4");

                        textBoxCurrentUserEmail .val(userMail);
                        textBoxCurrentUserEmail .focus();
                        textBoxIsAuthor .focus();
			window.console && console.log(userMail);
		},
		
		error: function (err)
		{
			alert(JSON.stringify(err));
		}
	});
});
</script>

请不要忘记在元素上使用.focus(),因为这将显示新插入的数据!

最后,你可以设置列表显示为对话框模式!

uttx8gqw

uttx8gqw3#

我认为问题出在作为字段名一部分的$上。jQuery将它们解释为不同变量的开始(我认为),所以没有解决你所期望的领域。我找到的解决方案是对名称进行模式匹配,这只适用于列名称没有冲突的小型表单,当然,您需要考虑如果形状进一步发展。
无论如何,如果你想尝试一下,我想下面的方法会起作用:

<script type="text/javascript" src="https://secureteams.app.aexp.com/sites/fiucmc/SiteAssets/jquery-3.1.0.min.js">
// getting the field
 var email = $('input[id^="FileLeafRef"]').val();

// setting the value
$('input[id^="Title"]').val( email );

相关问题