You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:SharePoint表单下拉选Yes时自动设置Originator Signature为当前用户

实现SharePoint表单下拉框触发自动填充当前用户登录名

没问题,我来帮你搞定这个需求!当用户在SharePoint表单的「Originator Completed」下拉框选择「Yes」时,自动把当前用户的LoginName填入「Originator Signature」文本字段,下面是调整后的完整代码和说明:

<script src="/SiteAssets/jquery-3.2.1.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
    // 页面加载时先获取当前用户的LoginName并缓存
    let userLoginName = '';
    const userid = _spPageContextInfo.userId;

    // 获取当前用户信息的函数
    function GetUserLogin() {
        const requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";
        const requestHeaders = { "accept": "application/json;odata=verbose" };
        
        $.ajax({
            url: requestUri,
            contentType: "application/json;odata=verbose",
            headers: requestHeaders,
            success: function(data) {
                // 提取LoginName(去掉前面的域前缀,比如i:0#.f|membership|)
                userLoginName = data.d.LoginName.split('|')[1];
            },
            error: function(error) {
                alert('获取用户信息失败:' + JSON.stringify(error));
            }
        });
    }

    // 监听下拉框的变化事件
    function setupDropdownListener() {
        // 找到「Originator Completed」下拉框(通过title属性定位)
        const completedDropdown = $("select[title='Originator Completed']");
        
        completedDropdown.on('change', function() {
            // 判断当前选中的值是否为"Yes"
            if ($(this).val() === "Yes") {
                // 将缓存的LoginName填入签名字段
                $("input[title='Originator Signature']").val(userLoginName);
            } else {
                // 如果选"No",可以清空签名字段(可选,根据需求调整)
                $("input[title='Originator Signature']").val('');
            }
        });
    }

    // 初始化:先获取用户信息,再设置监听
    GetUserLogin();
    setupDropdownListener();
});
</script>

关键逻辑说明:

  • 缓存用户信息:页面加载时只请求一次SharePoint用户API,把LoginName存在变量里,避免每次下拉变化都重复请求,提升性能
  • 下拉框事件监听:通过change事件监听「Originator Completed」下拉框的选择变化,当选中「Yes」时才触发填充动作
  • 字段定位:通过表单控件的title属性定位元素,确保和你表单里的字段名称完全匹配(如果字段的title不一样,记得修改代码里的对应值)
  • 错误处理:优化了错误提示,方便排查问题

注意事项:

  • 确认你的SharePoint站点的/SiteAssets/目录下确实有jquery-3.2.1.js文件,如果路径不对,要改成实际的jQuery文件路径
  • 确保表单里的下拉框title是「Originator Completed」,文本字段title是「Originator Signature」,如果名称不同,调整代码里的选择器
  • 这段代码适合SharePoint经典体验表单,如果是现代体验表单,可能需要用SPFx或者不同的DOM选择方式

内容的提问来源于stack exchange,提问作者lee mossolle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:50:42