SharePoint-如何在显示表单上显示所有单选按钮选择?

时间:2018-08-12 20:24:00

标签: sharepoint

我最近创建了一个共享点列表,该列表具有多个单选按钮选择。用户创建新条目时,他们选择一个单选按钮并提交。但是,当他们使用显示表单查看时,只会显示他们选择的选项。我要这样做,以便所有可能的选择都出现,但是它仍然显示他们选择了什么。有什么可行的方法吗?

This is what appears currently

This is what I want (and what users see when they submit a new item)

1 个答案:

答案 0 :(得分:0)

我们可以使用REST API来获取所有归档选项,然后使用jQuery将HTML附加到显示表单中的字段。以下代码供您参考。将代码添加到dispform.aspx页的脚本编辑器Web部件中。

<script src="//code.jquery.com/jquery-3.3.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
    var fieldTitle="AP Coding/Slip Claim Forms*/Limited Purchase Order";
    var currentFieldValue=$("h3.ms-standardheader:contains('"+fieldTitle+"')").parent().next()[0].innerText.trim();
    var fieldHTML=GetFieldChoices(currentFieldValue,fieldTitle);
    $("h3.ms-standardheader:contains('"+fieldTitle+"')").parent().next().html(fieldHTML);
});
function GetFieldChoices(currentFieldValue,fieldTitle){
    var listId = _spPageContextInfo.pageListId.replace("{","").replace("}","");
    var fieldHTML="";
    var url = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists(guid'"+listId+"')/fields?$select=Choices&$filter= Title eq '"+fieldTitle+"'";
    $.ajax({
        url: url,
        method: "GET",
        async:false,
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {       
            var choices = data.d.results[0].Choices.results;
            $.each(choices,function(index,choice){
                if(choice==currentFieldValue){
                    fieldHTML+="<input type='radio' disabled='disabled' checked='checked' name='"+fieldTitle+"' value='"+choice+"'>"+choice;
                }else{
                    fieldHTML+="<input type='radio' disabled='disabled' name='"+fieldTitle+"' value='"+choice+"'>"+choice;
                }
                if(index<choices.length){
                    fieldHTML+="<br>";
                }
            });         
        },
        error: function (error) {
            console.log(JSON.stringify(error));
        }
    });
    return fieldHTML;
}
</script>

enter image description here