下拉菜单选项值联动

cnDevNet发表于:2016年11月03日 10:58:07更新于:2022年07月27日 10:36:16

开发者中心包含此范例模板(下拉菜单选项值联动),请前往开发者中心下载学习。

概要

在某些应用中我们可能需要选择地名或市名。
中国幅员辽阔,如果通过下拉列表一个个找的话,难免费时费力。
以下介绍的应用,
可以先选择省份,通过市的下拉菜单,选择该市,并在之后显示所选的市名。
实现了下拉菜单之间的逻辑联动。

实现效果

001581aa8ae8448b3c788b94aa221b3

准备应用

建立一个省市Master

1.准备一个省市Master用来存放省和市的信息

字段名称字段类型字段代码
单行文本框sheng
单行文本框shi

2.在省市Master中添加一些省份和其对应的市的信息

建立省-市关联的应用

1.所需字段

字段名称字段类型字段代码项目名称
下拉菜单sheng浙江
江苏
广东

空白栏space
单行文本框shi
省市Master关联记录列表MasterID

001619379cd96160c6091529807a62d


2.编写代码

(function ($) {
  "use strict";
  function show(event) {
    var el = kintone.app.record.getSpaceElement("space");
    el.style.padding = "30px 0 0 0";
    var btnEl = document.createElement("select");
    btnEl.id = "select";
    btnEl.style.width = "150px";
    btnEl.style.height = "40px";
    el.appendChild(btnEl);
    $("#select").change(function () {
      var recordRoot = {};
      recordRoot["shi"] = {
        value: $("#select").find("option:selected").text(),
        type: "SINGLE_LINE_TEXT",
      };
      kintone.app.record.set({ record: recordRoot });
    });
    $("#select").append(
      $("", {
        value: "",
        text: "请先选择省",
      })
    );
    return event;
  }
  function changeSheng(event) {
    var record = event.record;
    var params = {
      app: kintone.app.getRelatedRecordsTargetAppId("MasterID"),// 获取关联应用的应用ID
      query: 'sheng = "' + record["sheng"]["value"] + '"',
    };
    kintone.api(
      kintone.api.url("/k/v1/records", true),
      "GET",
      params,
      function (resp) {
        var shengList = resp.records;
        $("#select  option").each(function () {
          $(this).remove();
        });
        var option = shengList.length > 0 ? "请先选择市" : "请先选择省";

        $("#select").append(
          $("", {
            value: "",
            text: option,
          })
        );
        for (var i in shengList) {
          $("#select").append(
            $("").text(
              resp.records[i]["shi"]["value"]
            )
          );
        }
        return event;
      }
    );
  }
  // 登记event处理
  kintone.events.on(["app.record.create.show","app.record.edit.show"], show);
  kintone.events.on(
    ["app.record.create.change.sheng", "app.record.edit.change.sheng"],
    changeSheng
  );
})(jQuery);

需要用到jQuery库,要添加此库
https://js.cybozu.cn/jquery/2.2.0/jquery.min.js


回复(3)

  • betsy_yan

    可以更改下拉的选项

    引用 贺俊南 的回复:


  • 贺俊南


    引用 danny80916kimo 的回复:

    我無法更改原本的下拉式選單的選項嗎

  • danny80916kimo

    我無法更改原本的下拉式選單的選項嗎