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

时间:2016-07-21 18:01:01

标签: jquery sharepoint-2010

所以我有一个奇怪的问题,我试图从名为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的佼佼者,我真的不认为这应该是那么难。

3 个答案:

答案 0 :(得分:0)

var email = $("input[title='FileLeafRef']").val();
$("input[title='Title']").val( email );
如果FileLeafRef是字段标题,

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

答案 1 :(得分:0)

最后我找到了解决方案! 它基于这个网站:Setting value to TextBox field

您必须遵循的重要步骤:

  1. 转到列表设置&gt;高级设置&gt;在对话框中显示表单(设置为false);
  2. 返回列表并单击以添加新项目;
  3. 此时,单击以编辑页面,然后添加脚本WebPart
  4. 现在只需复制并粘贴以下代码(您必须添加表单的ID,我只是使用示例
  5. <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(),因为这将显示新插入的数据!

    总而言之,之后您可以将列表设置为显示为对话框模式!

答案 2 :(得分:0)

我认为问题出在字段名称中包含的$。 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 );