如何更改netsuite中的字段类型?

时间:2016-08-15 12:05:51

标签: javascript html netsuite

我正在尝试使用Netsuite创建在线表单。

我们有一组预定义字段,如firstname,lastname等。

同样我们有一个

  

NLSUBSCRIPTIONS

标签,但默认情况下字段类型是下拉式,带有多个选择选项。

如何将此下拉菜单更改为复选框?

1 个答案:

答案 0 :(得分:0)

如果使用自定义模板,则可以隐藏下拉列表并迭代其选项以创建自己的复选框。

e.g。

    <div class="regFieldWrap">
        <span class='cbExpand hideNsLabel'><NLCUSTENTITY_LIST_FIELD></span><input class="otherShadow valid" type="text" name="custentity_list_field_other"><span class="multiProto cbHolder"><input type="radio" name="custentity_list_field"><label class="cbLabel"></label></span>
    </div>

然后

<script>
jQuery(function($){
        // convert multi select to checkbox
        $("span.multiProto").each(function(){
            var proto = this;
            var selName = $(proto).find("input").attr("name");
            var otherCB = null;
            $("select[name='"+selName+"']").css({display:'none'}).each(function(){
                var sel = $(this);
                var isReq = sel.hasClass('inputreq');
                if(isReq) sel.removeClass('inputreq');
                sel.find("option").each(function(){
                    if(!this.value) return;
                    var newby = $(proto.cloneNode(true));
                    var cb = newby.find("input").val(this.value);
                    if(isReq) cb.addClass('cb_selectone');
                    newby.find("label.cbLabel").text(this.text);
                    $(newby).removeClass('multiProto');
                    if((/\bother\b/i).test(this.text)){
                            var otherField = $("input.otherShadow[name='"+ selName+"_other']").each(function(){
                                var newOther = this.cloneNode(true); // strange but it gets around an IE issue
                                $(this).remove();
                                $(newby).find("input").data("conditionalOther", newOther);
                                newby.get(0).appendChild(newOther);
                            });
                            otherCB = newby;
                    } else proto.parentNode.insertBefore(newby.get(0), proto);
                });
                sel.get(0).options.length = 0;
            });
            if(otherCB) proto.parentNode.insertBefore(otherCB.get(0), proto); // make sure this is the end element
        });

});