我有在线表单的单选按钮。在[URL =“https://netsuite.custhelp.com/app/answers/detail/a_id/14704/”]单选按钮[/ URL]的NS帮助页面之后,我将我的字段设为自由格式文本。我转到在线表单记录(设置 - >营销 - >在线客户表单)并尝试强制使用单选按钮字段。虽然它对Mandatory保持“是”,但在处理表单时它似乎不适用它。
我是否需要做一些事情来强制使用自由格式文本字段?
答案 0 :(得分:0)
我不认为单选按钮可以强制使用,因为它们只保留是/否值。如果你没有选择任何东西,它将默认为否。这与复选框的情况相同。
对于必填字段,我认为系统会查找空值或空值。
答案 1 :(得分:0)
NetSuite的Mandatory似乎在表单元素(单选按钮)中查看Value属性,它可能正在获取组中第一个单选按钮的值,即使没有选中,也看到那里有东西。因此,我用HTML5元素和Javascript解决了这个问题。我正在回答我自己的问题,以帮助其他人:
HTML5方法:
简单的方法是在HTML5输入字段中有一个名为“required”的新属性。只需将其添加到输入标记的末尾,它将使该字段成为必需。任何符合HTML5标准的浏览器都将处理此问例如:
<input value="Very Satisfied" name="custrecord208" type="radio" id="custrecord208" class="radio1" required>Very Satisfied
Javascript方法:
不幸的是,并非所有用户都使用最新的浏览器(HTML5兼容),这让开发人员感到沮丧。下面是我在Javascript中为这个特殊问题编写的代码。它可能不是最干净但它完成了工作。
function saveRecord_validation(){
//array of the id's you know you need to go through
var a_custRecNames = ['custrecord184', 'custrecord185', 'custrecord186', 'custrecord187', 'custrecord188'];
var s_quesNums="";
var isFormValid = true;
var isRadioChecked = false;
for( var i = 0; i < a_custRecNames.length; i++ ) {//loop through each mandatory customRecord
var radios = document.getElementsByName(a_custRecNames[i]); //get the radio buttons for that question
//reset isRadioChecked for each question
isRadioChecked = false;
for (var j = 0, length = radios.length; j < length; j++) {//loop through each radio button
if (radios[j].checked) {
// only one radio can be logically checked, don't check the rest
isRadioChecked = true;
break;
}
}
if(!isRadioChecked){
//cleaning up the output just a little.
s_quesNums = ((i+1) < a_custRecNames.length) ? s_quesNums.concat(i+1).concat(", ") : s_quesNums.concat(i+1)+".";
isFormValid = false;
}
}
if(!isFormValid){
alert( "Please answer question(s) "+s_quesNums);
return false;
}
return true;
}
将此添加到NetSuite中的在线表单(有关帮助,请访问NetSuite Answers: Attach Script to Form)。
有关在NetSuite中创建单选按钮的帮助,请访问NetSuite Answers: Use Radio Button values on Online HTML forms