开发者中心包含此范例模板(下拉菜单选项值联动),请前往开发者中心下载学习。
概要
在某些应用中我们可能需要选择地名或市名。
中国幅员辽阔,如果通过下拉列表一个个找的话,难免费时费力。
以下介绍的应用,
可以先选择省份,通过市的下拉菜单,选择该市,并在之后显示所选的市名。
实现了下拉菜单之间的逻辑联动。
实现效果
准备应用
建立一个省市Master
1.准备一个省市Master用来存放省和市的信息
字段名称 | 字段类型 | 字段代码 |
---|---|---|
省 | 单行文本框 | sheng |
市 | 单行文本框 | shi |
2.在省市Master中添加一些省份和其对应的市的信息
建立省-市关联的应用
1.所需字段
字段名称 | 字段类型 | 字段代码 | 项目名称 |
---|---|---|---|
省 | 下拉菜单 | sheng | 浙江 |
江苏 | |||
广东 | |||
空白栏 | space | ||
市 | 单行文本框 | shi | |
省市Master | 关联记录列表 | MasterID |
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)
可以更改下拉的选项
我無法更改原本的下拉式選單的選項嗎