如何创建单选按钮自定义字段并将其添加到 NetSuite 表单?

问题描述 投票:0回答:1

我想使用“自定义表单”功能向 NetSuite 表单添加单选按钮,但似乎无法创建单选自定义字段。

我尝试在NetSuite中创建一个新的自定义字段,在类型字段中有各种条目,例如复选框、列表/记录、多重选择,但没有选择创建单选字段。

user-interface netsuite
1个回答
0
投票

NetSuite 不正式支持“Radio”类型字段,因此我们需要做一些解决方法来实现它!

如果您使用标准 NetSuite 表单定制器

我创建了一个小脚本,您可以使用它轻松地将单选按钮添加到任何表单 - 您只需执行一次,您就可以在任意多种不同的表单上使用它,以添加任意数量的单选按钮!

创建内联 HTML 类型的自定义字段,并将其添加到您希望显示单选按钮的每个表单上。在“验证和默认”选项卡下,将以下内容添加到“默认值”字段中。 (不用担心,它对用户来说是不可见的) <script> document.addEventListener('DOMContentLoaded', function() { try { var t = '<div class="uir-field-wrapper uir-inline-tag uir-onoff"><span class="uir-field" data-nsps-type="field_input"><span style="white-space: nowrap; padding:0px;"><input {{CHECKED}} onchange="nlapiSetFieldValue(this.dataset.name,this.value);" data-name="{{OPTION_NAME}}" name="radio_{{OPTION_NAME}}" type="radio" value="{{OPTION_VALUE}}" class="radio" id="radio_{{RADIO_ID}}"></span></span><span class="smallgraytextnolink uir-label"><span class="labelSpanEdit smallgraytextnolink"><label for="radio_{{RADIO_ID}}"><a class="smallgraytextnolink">{{OPTION_TEXT}}</a></label></span></span></div>'; var field_labels = document.getElementsByClassName('uir-label'); var radio_fields = []; for (var i=0,totali=field_labels.length; i<totali; i++) { if(field_labels[i].querySelector('a').text.slice(-3).toLowerCase() != '[r]') continue; field_labels[i].querySelector('a').text = field_labels[i].querySelector('a').text = field_labels[i].querySelector('a').text.slice(0,-3); var id = field_labels[i].id.slice(0,-17); var orig_field = document.getElementById(id+'_fs'); orig_field.style.display = 'none'; var orig_field_parent = orig_field.parentElement; var options_element = orig_field.querySelector('[data-options]'); var default_opt_index = options_element.dataset.defaultOption; var options = JSON.parse(options_element.dataset.options); var radio_html = ''; for(var x=0,totalx=options.length; x<totalx; x++) { if(!(options[x].value > 0)) continue; var h1 = t; h1 = h1.replace(/{{RADIO_ID}}/g,i+'_'+x); h1 = h1.replace(/{{OPTION_NAME}}/g,id); h1 = h1.replace('{{OPTION_VALUE}}',options[x].value); h1 = h1.replace('{{OPTION_TEXT}}',options[x].text); h1 = h1.replace('{{CHECKED}}',(x == default_opt_index ? 'checked' : '')); radio_html += h1; } var radio_holder_element = document.createElement('div'); radio_holder_element.innerHTML = radio_html; orig_field_parent.appendChild(radio_holder_element); } } catch(e) { console.error('Error converting Drop-down selections to Radio Buttons.',e); } }); </script> 它应该看起来像这样:

创建此自定义字段后,请确保在您想要使用单选按钮的任何表单上启用/显示它。 现在有趣的部分来了!您只需将

[R]

添加到

Label

末尾即可将任何 List/Record 类型字段转换为 Radio Button 之前

单选按钮修复脚本:

之后

单选按钮修复脚本:

仅此而已。您可以根据需要在任意多个不同的列表/记录类型字段上更改标签,并在末尾添加

[R]

,然后它们将显示为单选按钮 如果您不使用 NetSuite 表单定制器 如果您使用 SuiteScript 1 或 2,则可以按照我在另一个问题上发布的说明进行操作:

使用 SuiteScript 创建单选按钮

© www.soinside.com 2019 - 2024. All rights reserved.