Files
ant-design/components/select/index.html
T
2015-11-20 21:53:15 +08:00

1441 lines
55 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<meta name="description" content="一个 UI 设计语言"/>
<title>
Select 选择器 - Ant Design
</title>
<link rel="icon" href="https://t.alipayobjects.com/images/T1QUBfXo4fXXXXXXXX.png" type="image/x-icon">
<link rel="shortcut icon" href="https://t.alipayobjects.com/images/T1QUBfXo4fXXXXXXXX.png" type="image/x-icon">
<link rel="stylesheet" href="../../dist/demo.css">
<link rel="stylesheet" href="../../static/style.css">
<link rel="stylesheet" href="../../static/tomorrow.css">
<!--[if IE 8]>
<script src="https://t.alipayobjects.com/images/rmsweb/T1q8JiXftaXXXXXXXX.js"></script>
<![endif]-->
<script src="https://as.alipayobjects.com/component/??console-polyfill/0.2.2/index.js,es5-shim/4.1.14/es5-shim.min.js,es5-shim/4.1.14/es5-sham.min.js,html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://a.alipayobjects.com/??bluebird/2.9.30/bluebird.js,jquery/jquery/1.11.1/jquery.js"></script>
<script>
(function() {
window.ANT_COMPONENTS = [];
window.InstantClickChangeFns = [];
ANT_COMPONENTS.push({
title: 'Pagination',
desc: '分页'
});
ANT_COMPONENTS.push({
title: 'Affix',
desc: '固钉'
});
ANT_COMPONENTS.push({
title: 'Badge',
desc: '徽标数'
});
ANT_COMPONENTS.push({
title: 'Breadcrumb',
desc: '面包屑'
});
ANT_COMPONENTS.push({
title: 'Button',
desc: '按钮'
});
ANT_COMPONENTS.push({
title: 'Calendar',
desc: '日历'
});
ANT_COMPONENTS.push({
title: 'Carousel',
desc: '走马灯'
});
ANT_COMPONENTS.push({
title: 'Checkbox',
desc: '多选框'
});
ANT_COMPONENTS.push({
title: 'Collapse',
desc: '折叠面板'
});
ANT_COMPONENTS.push({
title: 'Datepicker',
desc: '日期选择框'
});
ANT_COMPONENTS.push({
title: 'Dropdown',
desc: '下拉菜单'
});
ANT_COMPONENTS.push({
title: 'Form',
desc: '表单'
});
ANT_COMPONENTS.push({
title: 'Icon',
desc: '图标'
});
ANT_COMPONENTS.push({
title: 'InputNumber',
desc: '数字输入框'
});
ANT_COMPONENTS.push({
title: 'Layout',
desc: '布局'
});
ANT_COMPONENTS.push({
title: 'Menu',
desc: '导航菜单'
});
ANT_COMPONENTS.push({
title: 'Message',
desc: '全局提示'
});
ANT_COMPONENTS.push({
title: 'Modal',
desc: '对话框'
});
ANT_COMPONENTS.push({
title: 'Notification',
desc: '通知提醒框'
});
ANT_COMPONENTS.push({
title: 'Alert',
desc: '警告提示'
});
ANT_COMPONENTS.push({
title: 'Popconfirm',
desc: '气泡确认框'
});
ANT_COMPONENTS.push({
title: 'Popover',
desc: '气泡卡片'
});
ANT_COMPONENTS.push({
title: 'Progress',
desc: '进度条'
});
ANT_COMPONENTS.push({
title: 'QueueAnim',
desc: '进出场动画'
});
ANT_COMPONENTS.push({
title: 'Radio',
desc: '单选框'
});
ANT_COMPONENTS.push({
title: 'Select',
desc: '选择器'
});
ANT_COMPONENTS.push({
title: 'Slider',
desc: '滑动输入条'
});
ANT_COMPONENTS.push({
title: 'Spin',
desc: '加载中'
});
ANT_COMPONENTS.push({
title: 'Steps',
desc: '步骤条'
});
ANT_COMPONENTS.push({
title: 'Switch',
desc: '开关'
});
ANT_COMPONENTS.push({
title: 'Table',
desc: '表格'
});
ANT_COMPONENTS.push({
title: 'Tabs',
desc: '标签页'
});
ANT_COMPONENTS.push({
title: 'Tag',
desc: '标签'
});
ANT_COMPONENTS.push({
title: 'Timeline',
desc: '时间轴'
});
ANT_COMPONENTS.push({
title: 'Timepicker',
desc: '时间选择框'
});
ANT_COMPONENTS.push({
title: 'Tooltip',
desc: '文字提示'
});
ANT_COMPONENTS.push({
title: 'Tree',
desc: '树形控件'
});
ANT_COMPONENTS.push({
title: 'Upload',
desc: '文件上传'
});
ANT_COMPONENTS.push({
title: 'Validation',
desc: '表单校验'
});
var i = location.pathname.split('/').lastIndexOf('ant-design');
if (i > 0) {
window.rootUrl = location.origin + location.pathname.split('/').slice(0, 2+1).join('/');
} else {
window.rootUrl = location.origin;
}
})();
</script>
<script src="../../static/script.js"></script>
<script>
window.antdVersion = {
latest: '0.10.1',
stable: '0.10.1'
};
</script>
<script src="../../dist/demo.js"></script>
<script>
window.require = function (path) {
var result = window;
var namespaces = path.split('/');
namespaces.forEach(function (key, i) {
if (i === 2) {
key = capitalizeFirstLetter(key);
}
if (key !== 'lib') {
if (result[key]) {
result = result[key];
} else {
throw 'There should not have modules here 2.';
}
}
});
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
return result;
};
</script>
<script src="https://t.alipayobjects.com/images/T1DrxhXe0mXXXXXXXX.js"></script>
</head>
<body >
<header id="header" class="clearfix">
<a class="logo" href="../..">
<img width="60" src="https://t.alipayobjects.com/images/rmsweb/T1B9hfXcdvXXXXXXXX.svg">
Ant Design
</a>
<div class="search">
<div id="autoComplete"></div>
</div>
<nav class="nav">
<span class="bar"></span>
<ul>
<li class="">
<a href="../.." data-no-instant>首页</a>
</li>
<li class="">
<a href="../../spec/introduce">设计</a>
</li>
<li>
<a class="nav-link-disabled" href="">案例</a>
</li>
<li class="current">
<a href="../../docs/introduce">React</a>
</li>
<li>
<a target="_blank" href="https://github.com/ant-design/ant-design">Github</a>
</li>
</ul>
</nav>
<div class="nav-phone-icon"></div>
</header>
<div class="main-wrapper">
<aside class="aside-container">
<ul>
<li class="">
<a href="../../docs/introduce" class="">
Ant Design of React
<span class="chinese"></span>
</a>
</li>
<li class="">
<a href="../../docs/getting-started" class="">
快速上手
<span class="chinese"></span>
</a>
</li>
<li class="">
<a href="../../docs/install" class="">
安装
<span class="chinese"></span>
</a>
</li>
<li class="">
<a href="../../docs/upgrade-to-0.10" class="">
0.10 升级指南
<span class="chinese"></span>
</a>
</li>
<li class="">
<a href="../../changelog" class="">
更新日志
<span class="chinese"></span>
</a>
</li>
<li open="open">
<h4>Components</h4>
<ul class="">
<li class="type-divider">基本</li>
<li class="">
<a href="../button/"
class="">
Button
<span class="chinese">按钮</span>
</a>
</li>
<li class="">
<a href="../icon/"
class="">
Icon
<span class="chinese">图标</span>
</a>
</li>
<li class="">
<a href="../layout/"
class="">
Layout
<span class="chinese">布局</span>
</a>
</li>
<li class="type-divider">表单</li>
<li class="">
<a href="../checkbox/"
class="">
Checkbox
<span class="chinese">多选框</span>
</a>
</li>
<li class="">
<a href="../datepicker/"
class="">
Datepicker
<span class="chinese">日期选择框</span>
</a>
</li>
<li class="">
<a href="../form/"
class="">
Form
<span class="chinese">表单</span>
</a>
</li>
<li class="">
<a href="../input-number/"
class="">
InputNumber
<span class="chinese">数字输入框</span>
</a>
</li>
<li class="">
<a href="../radio/"
class="">
Radio
<span class="chinese">单选框</span>
</a>
</li>
<li class="current">
<a href="./"
class="">
Select
<span class="chinese">选择器</span>
</a>
</li>
<li class="">
<a href="../slider/"
class="">
Slider
<span class="chinese">滑动输入条</span>
</a>
</li>
<li class="">
<a href="../switch/"
class="">
Switch
<span class="chinese">开关</span>
</a>
</li>
<li class="">
<a href="../timepicker/"
class="">
Timepicker
<span class="chinese">时间选择框</span>
</a>
</li>
<li class="">
<a href="../upload/"
class="">
Upload
<span class="chinese">文件上传</span>
</a>
</li>
<li class="">
<a href="../validation/"
class="">
Validation
<span class="chinese">表单校验</span>
</a>
</li>
<li class="type-divider">展示</li>
<li class="">
<a href="../alert/"
class="">
Alert
<span class="chinese">警告提示</span>
</a>
</li>
<li class="">
<a href="../badge/"
class="">
Badge
<span class="chinese">徽标数</span>
</a>
</li>
<li class="">
<a href="../calendar/"
class="">
Calendar
<span class="chinese">日历</span>
</a>
</li>
<li class="">
<a href="../carousel/"
class="">
Carousel
<span class="chinese">走马灯</span>
</a>
</li>
<li class="">
<a href="../collapse/"
class="">
Collapse
<span class="chinese">折叠面板</span>
</a>
</li>
<li class="">
<a href="../dropdown/"
class="">
Dropdown
<span class="chinese">下拉菜单</span>
</a>
</li>
<li class="">
<a href="../message/"
class=""data-no-instant>
Message
<span class="chinese">全局提示</span>
</a>
</li>
<li class="">
<a href="../modal/"
class="">
Modal
<span class="chinese">对话框</span>
</a>
</li>
<li class="">
<a href="../notification/"
class=""data-no-instant>
Notification
<span class="chinese">通知提醒框</span>
</a>
</li>
<li class="">
<a href="../popconfirm/"
class="">
Popconfirm
<span class="chinese">气泡确认框</span>
</a>
</li>
<li class="">
<a href="../popover/"
class="">
Popover
<span class="chinese">气泡卡片</span>
</a>
</li>
<li class="">
<a href="../progress/"
class="">
Progress
<span class="chinese">进度条</span>
</a>
</li>
<li class="">
<a href="../table/"
class="">
Table
<span class="chinese">表格</span>
</a>
</li>
<li class="">
<a href="../tag/"
class="">
Tag
<span class="chinese">标签</span>
</a>
</li>
<li class="">
<a href="../timeline/"
class="">
Timeline
<span class="chinese">时间轴</span>
</a>
</li>
<li class="">
<a href="../tooltip/"
class="">
Tooltip
<span class="chinese">文字提示</span>
</a>
</li>
<li class="">
<a href="../tree/"
class="">
Tree
<span class="chinese">树形控件</span>
</a>
</li>
<li class="type-divider">导航</li>
<li class="">
<a href="../breadcrumb/"
class="">
Breadcrumb
<span class="chinese">面包屑</span>
</a>
</li>
<li class="">
<a href="../menu/"
class="">
Menu
<span class="chinese">导航菜单</span>
</a>
</li>
<li class="">
<a href="../pagination/"
class="">
Pagination
<span class="chinese">分页</span>
</a>
</li>
<li class="">
<a href="../steps/"
class="">
Steps
<span class="chinese">步骤条</span>
</a>
</li>
<li class="">
<a href="../tabs/"
class="">
Tabs
<span class="chinese">标签页</span>
</a>
</li>
<li class="type-divider">其他</li>
<li class="">
<a href="../affix/"
class="">
Affix
<span class="chinese">固钉</span>
</a>
</li>
<li class="">
<a href="../queue-anim/"
class="">
QueueAnim
<span class="chinese">进出场动画</span>
</a>
</li>
<li class="">
<a href="../spin/"
class="">
Spin
<span class="chinese">加载中</span>
</a>
</li>
</ul>
</li>
</ul>
</aside>
<section class="main-container">
<article class="markdown">
<h1>
Select 选择器
</h1>
<p>类似 Select2 的选择器。</p>
<h2 id="何时使用">何时使用<a href="#何时使用" class="anchor">#</a> </h2><p>弹出一个下拉菜单给用户选择操作,用于代替原生的选择器,或者需要一个更优雅的多选器时。</p>
<div class="highlight"><pre><code class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Select</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"lucy"</span>&gt;</span>lucy<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span></code></pre></div><h2 id="api">API<a href="#api" class="anchor">#</a> </h2><h3 id="select-props">Select props<a href="#select-props" class="anchor">#</a> </h3><table>
<thead>
<tr>
<th>参数</th>
<th>说明</th>
<th>类型</th>
<th>默认值</th>
</tr>
</thead>
<tbody>
<tr>
<td>value</td>
<td>指定当前选中的条目</td>
<td>string/Array<String></td>
<td></td>
</tr>
<tr>
<td>defaultValue</td>
<td>指定默认选中的条目</td>
<td>string/Array<String></td>
<td></td>
</tr>
<tr>
<td>multiple</td>
<td>支持多选</td>
<td></td>
<td>false</td>
</tr>
<tr>
<td>filterOption</td>
<td>是否根据输入项进行筛选</td>
<td></td>
<td>true</td>
</tr>
<tr>
<td>tags</td>
<td>可以把随意输入的条目作为tag,输入项不需要与下拉选项匹配</td>
<td></td>
<td>false</td>
</tr>
<tr>
<td>onSelect</td>
<td>被选中时调用,参数为选中的option value值</td>
<td>function(value, option)</td>
<td></td>
</tr>
<tr>
<td>onDeselect</td>
<td>取消选中时调用,参数为选中的option value值,仅在multiple或tags模式下生效</td>
<td>function(value, option)</td>
<td></td>
</tr>
<tr>
<td>onChange</td>
<td>选中option,或input的value变化(combobox模式下)时,调用此函数</td>
<td>function(value, label)</td>
<td></td>
</tr>
<tr>
<td>allowClear</td>
<td>显示清除按钮</td>
<td></td>
<td>false</td>
</tr>
<tr>
<td>onSearch</td>
<td>文本框值变化时回调</td>
<td>function(value: String)</td>
<td></td>
</tr>
<tr>
<td>placeholder</td>
<td>选择框默认文字</td>
<td>string</td>
<td></td>
</tr>
<tr>
<td>searchPlaceholder</td>
<td>搜索框默认文字</td>
<td>string</td>
<td></td>
</tr>
<tr>
<td>optionFilterProp</td>
<td>输入项过滤对应的 option 属性</td>
<td>string</td>
<td>value</td>
</tr>
<tr>
<td>combobox</td>
<td>输入框自动提示模式</td>
<td></td>
<td>false</td>
</tr>
<tr>
<td>size</td>
<td>选择框大小,可选 <code>large</code> <code>small</code></td>
<td>String</td>
<td>default</td>
</tr>
</tbody>
</table>
<h3 id="option-props">Option props<a href="#option-props" class="anchor">#</a> </h3><table>
<thead>
<tr>
<th>参数</th>
<th>说明</th>
<th>类型</th>
<th>默认值</th>
</tr>
</thead>
<tbody>
<tr>
<td>disabled</td>
<td>是否禁用</td>
<td>Boolean</td>
<td>false</td>
</tr>
<tr>
<td>key</td>
<td>如果react需要你设置此项,此项值与value的值相同,然后可以省略value设置</td>
<td>String</td>
<td></td>
</tr>
<tr>
<td>value</td>
<td>默认根据此属性值进行筛选</td>
<td>String</td>
<td>-</td>
</tr>
</tbody>
</table>
<h3 id="optgroup-props">OptGroup props<a href="#optgroup-props" class="anchor">#</a> </h3><table>
<thead>
<tr>
<th>参数</th>
<th>说明</th>
<th>类型</th>
<th>默认值</th>
</tr>
</thead>
<tbody>
<tr>
<td>label</td>
<td>组名</td>
<td>String/React.Element</td>
<td></td>
</tr>
<tr>
<td>key</td>
<td></td>
<td>String</td>
<td>-</td>
</tr>
</tbody>
</table>
</article>
<h2 class="component-demos">
代码演示
<i class="anticon anticon-appstore icon-all" title="展开全部代码"></i>
</h2>
<div class="code-boxes">
<div class="code-boxes-col-2-1"><div class="code-box" id="demo-basic">
<div class="code-box-demo">
<div id="components-select-demo-basic"></div>
<script>(function(){'use strict';
var _antd = require('antd');
var Option = _antd.Select.Option;
function handleChange(value) {
console.log('selected ' + value);
}
ReactDOM.render(React.createElement(
_antd.Select,
{ defaultValue: 'lucy', style: { width: 120 }, onChange: handleChange },
React.createElement(
Option,
{ value: 'jack' },
'Jack'
),
React.createElement(
Option,
{ value: 'lucy' },
'Lucy'
),
React.createElement(
Option,
{ value: 'disabled', disabled: true },
'Disabled'
),
React.createElement(
Option,
{ value: 'yiminghe' },
'yiminghe'
)
), document.getElementById('components-select-demo-basic'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Select } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
<span class="hljs-keyword">const</span> Option = Select.Option;
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">handleChange</span>(<span class="hljs-params">value</span>) </span>{
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">'selected '</span> + value);
}
ReactDOM.render(
<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Select</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">"lucy"</span> <span class="hljs-attribute">style</span>=<span class="hljs-value">{{width:120}}</span> <span class="hljs-attribute">onChange</span>=<span class="hljs-value">{handleChange}</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"jack"</span>&gt;</span>Jack<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"lucy"</span>&gt;</span>Lucy<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"disabled"</span> <span class="hljs-attribute">disabled</span>&gt;</span>Disabled<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"yiminghe"</span>&gt;</span>yiminghe<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span>
, document.getElementById('components-select-demo-basic'));</span></code></pre></div>
</div>
<div class="code-box-meta markdown">
<div class="code-box-title">
<a href="#demo-basic">基本使用</a>
</div>
<p>基本使用。</p>
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
</div>
</div><div class="code-box" id="demo-search">
<div class="code-box-demo">
<div id="components-select-demo-search"></div>
<script>(function(){'use strict';
var _antd = require('antd');
var Option = _antd.Select.Option;
function handleChange(value) {
console.log('selected ' + value);
}
ReactDOM.render(React.createElement(
_antd.Select,
{ defaultValue: 'lucy', showSearch: true, style: { width: 200 },
searchPlaceholder: '输入',
onChange: handleChange },
React.createElement(
Option,
{ value: 'jack' },
'jack'
),
React.createElement(
Option,
{ value: 'lucy' },
'lucy'
),
React.createElement(
Option,
{ value: 'disabled', disabled: true },
'disabled'
),
React.createElement(
Option,
{ value: 'yiminghe' },
'yiminghe'
)
), document.getElementById('components-select-demo-search'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Select } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
<span class="hljs-keyword">const</span> Option = Select.Option;
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">handleChange</span>(<span class="hljs-params">value</span>) </span>{
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">'selected '</span> + value);
}
ReactDOM.render(
<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Select</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">"lucy"</span> <span class="hljs-attribute">showSearch</span>=<span class="hljs-value">{true}</span> <span class="hljs-attribute">style</span>=<span class="hljs-value">{{width:200}}</span>
<span class="hljs-attribute">searchPlaceholder</span>=<span class="hljs-value">"输入"</span>
<span class="hljs-attribute">onChange</span>=<span class="hljs-value">{handleChange}</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"jack"</span>&gt;</span>jack<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"lucy"</span>&gt;</span>lucy<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"disabled"</span> <span class="hljs-attribute">disabled</span>&gt;</span>disabled<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"yiminghe"</span>&gt;</span>yiminghe<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span>
, document.getElementById('components-select-demo-search'));</span></code></pre></div>
</div>
<div class="code-box-meta markdown">
<div class="code-box-title">
<a href="#demo-search">带搜索框</a>
</div>
<p>在浮层内顶部有搜索框的单项选择器。</p>
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
</div>
</div><div class="code-box" id="demo-tags">
<div class="code-box-demo">
<div id="components-select-demo-tags"></div>
<script>(function(){'use strict';
var _antd = require('antd');
var Option = _antd.Select.Option;
var children = [];
for (var i = 10; i < 36; i++) {
children.push(React.createElement(
Option,
{ key: i.toString(36) + i },
i.toString(36) + i
));
}
function handleChange(value) {
console.log('selected ' + value);
}
ReactDOM.render(React.createElement(
_antd.Select,
{
style: { width: '100%' },
searchPlaceholder: '标签模式',
tags: true, onChange: handleChange },
children
), document.getElementById('components-select-demo-tags'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Select } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
<span class="hljs-keyword">const</span> Option = Select.Option;
<span class="hljs-keyword">let</span> children = [];
<span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">10</span>; i &lt; <span class="hljs-number">36</span>; i++) {
children.push(<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">{i.toString(36)</span> + <span class="hljs-attribute">i</span>}&gt;</span>{i.toString(36) + i}<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>)</span>;
}
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">handleChange</span>(<span class="hljs-params">value</span>) </span>{
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">'selected '</span> + value);
}
ReactDOM.render(
<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Select</span>
<span class="hljs-attribute">style</span>=<span class="hljs-value">{{width:</span> '<span class="hljs-attribute">100</span>%'}}
<span class="hljs-attribute">searchPlaceholder</span>=<span class="hljs-value">"标签模式"</span>
<span class="hljs-attribute">tags</span> <span class="hljs-attribute">onChange</span>=<span class="hljs-value">{handleChange}</span>&gt;</span>
{children}
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span>
, document.getElementById('components-select-demo-tags'));</span></code></pre></div>
</div>
<div class="code-box-meta markdown">
<div class="code-box-title">
<a href="#demo-tags">标签</a>
</div>
<p>tags select,随意输入的内容(scroll the menu</p>
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
</div>
</div><div class="code-box" id="demo-optgroup">
<div class="code-box-demo">
<div id="components-select-demo-optgroup"></div>
<script>(function(){'use strict';
var _antd = require('antd');
var Option = _antd.Select.Option;
var OptGroup = _antd.Select.OptGroup;
function handleChange(value) {
console.log('selected ' + value);
}
ReactDOM.render(React.createElement(
_antd.Select,
{ defaultValue: 'lucy',
style: { width: 200 },
showSearch: false,
onChange: handleChange },
React.createElement(
OptGroup,
{ label: 'Manager' },
React.createElement(
Option,
{ value: 'jack' },
'jack'
),
React.createElement(
Option,
{ value: 'lucy' },
'lucy'
)
),
React.createElement(
OptGroup,
{ label: 'Engineer' },
React.createElement(
Option,
{ value: 'yiminghe' },
'yiminghe'
)
)
), document.getElementById('components-select-demo-optgroup'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Select } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
<span class="hljs-keyword">const</span> Option = Select.Option;
<span class="hljs-keyword">const</span> OptGroup = Select.OptGroup;
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">handleChange</span>(<span class="hljs-params">value</span>) </span>{
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">'selected '</span> + value);
}
ReactDOM.render(
<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Select</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">"lucy"</span>
<span class="hljs-attribute">style</span>=<span class="hljs-value">{{width:200}}</span>
<span class="hljs-attribute">showSearch</span>=<span class="hljs-value">{false}</span>
<span class="hljs-attribute">onChange</span>=<span class="hljs-value">{handleChange}</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">OptGroup</span> <span class="hljs-attribute">label</span>=<span class="hljs-value">"Manager"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"jack"</span>&gt;</span>jack<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"lucy"</span>&gt;</span>lucy<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">OptGroup</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">OptGroup</span> <span class="hljs-attribute">label</span>=<span class="hljs-value">"Engineer"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"yiminghe"</span>&gt;</span>yiminghe<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">OptGroup</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span>
, document.getElementById('components-select-demo-optgroup'));</span></code></pre></div>
</div>
<div class="code-box-meta markdown">
<div class="code-box-title">
<a href="#demo-optgroup">分组</a>
</div>
<p>option分组</p>
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
</div>
</div>
</div>
<div class="code-boxes-col-2-1"><div class="code-box" id="demo-size">
<div class="code-box-demo">
<div id="components-select-demo-size"></div>
<script>(function(){'use strict';
var _antd = require('antd');
var Option = _antd.Select.Option;
function handleChange(value) {
console.log('selected ' + value);
}
ReactDOM.render(React.createElement(
'div',
null,
React.createElement(
_antd.Select,
{ size: 'large', defaultValue: 'lucy', style: { width: 200 }, onChange: handleChange },
React.createElement(
Option,
{ value: 'jack' },
'Jack'
),
React.createElement(
Option,
{ value: 'lucy' },
'Lucy'
),
React.createElement(
Option,
{ value: 'disabled', disabled: true },
'Disabled'
),
React.createElement(
Option,
{ value: 'yiminghe' },
'yiminghe'
)
),
React.createElement(
_antd.Select,
{ defaultValue: 'lucy', style: { width: 200 }, onChange: handleChange },
React.createElement(
Option,
{ value: 'jack' },
'Jack'
),
React.createElement(
Option,
{ value: 'lucy' },
'Lucy'
),
React.createElement(
Option,
{ value: 'disabled', disabled: true },
'Disabled'
),
React.createElement(
Option,
{ value: 'yiminghe' },
'yiminghe'
)
),
React.createElement(
_antd.Select,
{ size: 'small', defaultValue: 'lucy', style: { width: 200 }, onChange: handleChange },
React.createElement(
Option,
{ value: 'jack' },
'Jack'
),
React.createElement(
Option,
{ value: 'lucy' },
'Lucy'
),
React.createElement(
Option,
{ value: 'disabled', disabled: true },
'Disabled'
),
React.createElement(
Option,
{ value: 'yiminghe' },
'yiminghe'
)
)
), document.getElementById('components-select-demo-size'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Select } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
<span class="hljs-keyword">const</span> Option = Select.Option;
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">handleChange</span>(<span class="hljs-params">value</span>) </span>{
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">'selected '</span> + value);
}
ReactDOM.render(
<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Select</span> <span class="hljs-attribute">size</span>=<span class="hljs-value">"large"</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">"lucy"</span> <span class="hljs-attribute">style</span>=<span class="hljs-value">{{width:200}}</span> <span class="hljs-attribute">onChange</span>=<span class="hljs-value">{handleChange}</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"jack"</span>&gt;</span>Jack<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"lucy"</span>&gt;</span>Lucy<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"disabled"</span> <span class="hljs-attribute">disabled</span>&gt;</span>Disabled<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"yiminghe"</span>&gt;</span>yiminghe<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Select</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">"lucy"</span> <span class="hljs-attribute">style</span>=<span class="hljs-value">{{width:200}}</span> <span class="hljs-attribute">onChange</span>=<span class="hljs-value">{handleChange}</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"jack"</span>&gt;</span>Jack<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"lucy"</span>&gt;</span>Lucy<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"disabled"</span> <span class="hljs-attribute">disabled</span>&gt;</span>Disabled<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"yiminghe"</span>&gt;</span>yiminghe<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Select</span> <span class="hljs-attribute">size</span>=<span class="hljs-value">"small"</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">"lucy"</span> <span class="hljs-attribute">style</span>=<span class="hljs-value">{{width:200}}</span> <span class="hljs-attribute">onChange</span>=<span class="hljs-value">{handleChange}</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"jack"</span>&gt;</span>Jack<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"lucy"</span>&gt;</span>Lucy<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"disabled"</span> <span class="hljs-attribute">disabled</span>&gt;</span>Disabled<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"yiminghe"</span>&gt;</span>yiminghe<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>
, document.getElementById('components-select-demo-size'));</span></code></pre></div><style type="text/css">.code-box-demo .ant-select {
margin: 0 8px 10px 0;
}</style><div class="highlight"><pre><code class="css"><span class="hljs-class">.code-box-demo</span> <span class="hljs-class">.ant-select</span> <span class="hljs-rules">{
<span class="hljs-rule"><span class="hljs-attribute">margin</span>:<span class="hljs-value"> <span class="hljs-number">0</span> <span class="hljs-number">8px</span> <span class="hljs-number">10px</span> <span class="hljs-number">0</span></span></span>;
}</span></code></pre></div>
</div>
<div class="code-box-meta markdown">
<div class="code-box-title">
<a href="#demo-size">三种大小</a>
</div>
<p>三种大小的选择框,当 size 分别为 <code>large</code><code>small</code> 时,输入框高度为 <code>32px</code><code>22px</code> ,默认高度为 <code>28px</code></p>
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
</div>
</div><div class="code-box" id="demo-multiple">
<div class="code-box-demo">
<div id="components-select-demo-multiple"></div>
<script>(function(){'use strict';
var _antd = require('antd');
var Option = _antd.Select.Option;
var children = [];
for (var i = 10; i < 36; i++) {
children.push(React.createElement(
Option,
{ key: i.toString(36) + i },
i.toString(36) + i
));
}
function handleChange(value) {
console.log('selected ' + value);
}
ReactDOM.render(React.createElement(
_antd.Select,
{ multiple: true,
style: { width: 400 },
defaultValue: ['a10', 'c12'], onChange: handleChange },
children
), document.getElementById('components-select-demo-multiple'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Select } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
<span class="hljs-keyword">const</span> Option = Select.Option;
<span class="hljs-keyword">let</span> children = [];
<span class="hljs-keyword">for</span> (<span class="hljs-keyword">let</span> i = <span class="hljs-number">10</span>; i &lt; <span class="hljs-number">36</span>; i++) {
children.push(<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">{i.toString(36)</span> + <span class="hljs-attribute">i</span>}&gt;</span>{i.toString(36) + i}<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>)</span>;
}
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">handleChange</span>(<span class="hljs-params">value</span>) </span>{
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">'selected '</span> + value);
}
ReactDOM.render(
<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Select</span> <span class="hljs-attribute">multiple</span>
<span class="hljs-attribute">style</span>=<span class="hljs-value">{{width:400}}</span>
<span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">{['a10',</span> '<span class="hljs-attribute">c12</span>']} <span class="hljs-attribute">onChange</span>=<span class="hljs-value">{handleChange}</span>&gt;</span>
{children}
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span>
, document.getElementById('components-select-demo-multiple'));</span></code></pre></div>
</div>
<div class="code-box-meta markdown">
<div class="code-box-title">
<a href="#demo-multiple">多选</a>
</div>
<p>多选,从已有条目中选择(scroll the menu</p>
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
</div>
</div><div class="code-box" id="demo-combobox">
<div class="code-box-demo">
<div id="components-select-demo-combobox"></div>
<script>(function(){'use strict';
var _antd = require('antd');
var Option = _antd.Select.Option;
var Test = React.createClass({
displayName: 'Test',
getInitialState: function getInitialState() {
return {
options: []
};
},
handleChange: function handleChange(value) {
var options = undefined;
if (!value || value.indexOf('@') >= 0) {
options = [];
} else {
options = ['gmail.com', '163.com', 'qq.com'].map(function (domain) {
var email = value + '@' + domain;
return React.createElement(
Option,
{ key: email },
email
);
});
}
this.setState({
options: options
});
},
render: function render() {
// filterOption 需要设置为 false,数据是动态设置的
return React.createElement(
_antd.Select,
{ combobox: true,
style: { width: 200 },
onChange: this.handleChange,
filterOption: false,
searchPlaceholder: '请输入账户名' },
this.state.options
);
}
});
ReactDOM.render(React.createElement(Test, null), document.getElementById('components-select-demo-combobox'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Select } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
<span class="hljs-keyword">const</span> Option = Select.Option;
<span class="hljs-keyword">const</span> Test = React.createClass({
getInitialState() {
<span class="hljs-keyword">return</span> {
options: []
};
},
handleChange(value) {
<span class="hljs-keyword">let</span> options;
<span class="hljs-keyword">if</span> (!value || value.indexOf(<span class="hljs-string">'@'</span>) &gt;= <span class="hljs-number">0</span>) {
options = [];
} <span class="hljs-keyword">else</span> {
options = [<span class="hljs-string">'gmail.com'</span>, <span class="hljs-string">'163.com'</span>, <span class="hljs-string">'qq.com'</span>].map(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">domain</span>) </span>{
<span class="hljs-keyword">const</span> email = value + <span class="hljs-string">'@'</span> + domain;
<span class="hljs-keyword">return</span> <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">{email}</span>&gt;</span>{email}<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>;</span>
});
}
<span class="hljs-keyword">this</span>.setState({
options: options
});
},
render() {
<span class="hljs-comment">// filterOption 需要设置为 false,数据是动态设置的</span>
<span class="hljs-keyword">return</span> <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Select</span> <span class="hljs-attribute">combobox</span>
<span class="hljs-attribute">style</span>=<span class="hljs-value">{{width:200}}</span>
<span class="hljs-attribute">onChange</span>=<span class="hljs-value">{this.handleChange}</span>
<span class="hljs-attribute">filterOption</span>=<span class="hljs-value">{false}</span>
<span class="hljs-attribute">searchPlaceholder</span>=<span class="hljs-value">"请输入账户名"</span>&gt;</span>
{this.state.options}
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span>;</span>
}
});
ReactDOM.render(<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Test</span> /&gt;</span>, document.getElementById('components-select-demo-combobox'));</span></code></pre></div>
</div>
<div class="code-box-meta markdown">
<div class="code-box-title">
<a href="#demo-combobox">智能提示</a>
</div>
<p>输入框自动完成功能,下面是一个账号注册表单的例子。</p>
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
</div>
</div><div class="code-box" id="demo-coordinate">
<div class="code-box-demo">
<div id="components-select-demo-coordinate"></div>
<script>(function(){'use strict';
var _antd = require('antd');
var Option = _antd.Select.Option;
var provinceData = ['浙江', '江苏'];
var cityData = {
'浙江': ['杭州', '宁波', '温州'],
'江苏': ['南京', '苏州', '镇江']
};
var App = React.createClass({
displayName: 'App',
getInitialState: function getInitialState() {
return {
cities: cityData[provinceData[0]],
secondCity: cityData[provinceData[0]][0]
};
},
handleProvinceChange: function handleProvinceChange(value) {
this.setState({
cities: cityData[value],
secondCity: cityData[value][0]
});
},
onSecondCityChange: function onSecondCityChange(value) {
this.setState({
secondCity: value
});
},
render: function render() {
var provinceOptions = provinceData.map(function (province) {
return React.createElement(
Option,
{ key: province },
province
);
});
var cityOptions = this.state.cities.map(function (city) {
return React.createElement(
Option,
{ key: city },
city
);
});
return React.createElement(
'div',
null,
React.createElement(
_antd.Select,
{ defaultValue: provinceData[0], style: { width: 150 }, onChange: this.handleProvinceChange },
provinceOptions
),
React.createElement(
_antd.Select,
{ value: this.state.secondCity, style: { width: 150 }, onChange: this.onSecondCityChange },
cityOptions
)
);
}
});
ReactDOM.render(React.createElement(App, null), document.getElementById('components-select-demo-coordinate'));})()</script><div class="highlight"><pre><code class="javascript"><span class="hljs-keyword">import</span> { Select } <span class="hljs-keyword">from</span> <span class="hljs-string">'antd'</span>;
<span class="hljs-keyword">const</span> Option = Select.Option;
<span class="hljs-keyword">const</span> provinceData = [<span class="hljs-string">'浙江'</span>, <span class="hljs-string">'江苏'</span>];
<span class="hljs-keyword">const</span> cityData = {
<span class="hljs-string">'浙江'</span>: [<span class="hljs-string">'杭州'</span>, <span class="hljs-string">'宁波'</span>, <span class="hljs-string">'温州'</span>],
<span class="hljs-string">'江苏'</span>: [<span class="hljs-string">'南京'</span>, <span class="hljs-string">'苏州'</span>, <span class="hljs-string">'镇江'</span>]
};
<span class="hljs-keyword">const</span> App = React.createClass({
getInitialState() {
<span class="hljs-keyword">return</span> {
cities: cityData[provinceData[<span class="hljs-number">0</span>]],
secondCity:cityData[provinceData[<span class="hljs-number">0</span>]][<span class="hljs-number">0</span>]
};
},
handleProvinceChange(value) {
<span class="hljs-keyword">this</span>.setState({
cities: cityData[value],
secondCity:cityData[value][<span class="hljs-number">0</span>]
});
},
onSecondCityChange(value) {
<span class="hljs-keyword">this</span>.setState({
secondCity: value
});
},
render() {
<span class="hljs-keyword">const</span> provinceOptions = provinceData.map(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">province</span>) </span>{
<span class="hljs-keyword">return</span> <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">{province}</span>&gt;</span>{province}<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>;</span>
});
<span class="hljs-keyword">const</span> cityOptions = <span class="hljs-keyword">this</span>.state.cities.map(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">city</span>) </span>{
<span class="hljs-keyword">return</span> <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">Option</span> <span class="hljs-attribute">key</span>=<span class="hljs-value">{city}</span>&gt;</span>{city}<span class="hljs-tag">&lt;/<span class="hljs-title">Option</span>&gt;</span>;</span>
});
<span class="hljs-keyword">return</span> <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Select</span> <span class="hljs-attribute">defaultValue</span>=<span class="hljs-value">{provinceData[0]}</span> <span class="hljs-attribute">style</span>=<span class="hljs-value">{{width:150}}</span> <span class="hljs-attribute">onChange</span>=<span class="hljs-value">{this.handleProvinceChange}</span>&gt;</span>
{provinceOptions}
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">Select</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">{this.state.secondCity}</span> <span class="hljs-attribute">style</span>=<span class="hljs-value">{{width:150}}</span> <span class="hljs-attribute">onChange</span>=<span class="hljs-value">{this.onSecondCityChange}</span>&gt;</span>
{cityOptions}
<span class="hljs-tag">&lt;/<span class="hljs-title">Select</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>;</span>
}
});
ReactDOM.render(<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-title">App</span> /&gt;</span>, document.getElementById('components-select-demo-coordinate'));</span></code></pre></div>
</div>
<div class="code-box-meta markdown">
<div class="code-box-title">
<a href="#demo-coordinate">联动</a>
</div>
<p>省市联动是典型的例子。</p>
<span class="collapse anticon anticon-circle-o-right" unselectable="none" style="-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;"></span>
</div>
</div>
</div>
</div>
<div class="api-container markdown"></div>
</section>
</div><footer id="footer">
<ul>
<li>
<h2>GitHub</h2>
<a target="_blank "href="https://github.com/ant-design/ant-design">仓库</a>
<a target="_blank" href="https://github.com/ant-design/ant-design/tree/master/style">样式</a>
<a target="_blank" href="https://github.com/ant-design/antd-bin">开发工具</a>
</li>
<li>
<h2>关于我们</h2>
<a href="https://github.com/alipay/x/issues">博客 - Ant UED</a>
</li>
<li>
<h2>联系我们</h2>
<a target="_blank" href="https://github.com/ant-design/ant-design/issues">反馈和建议</a>
<a target="_blank" href="https://gitter.im/ant-design/ant-design">讨论</a>
<a target="_blank" href="https://github.com/ant-design/ant-design/issues/new?title=请填写简洁有效的标题&body=**问题描述**%0A%0A(描述一下问题)%0A%0A**发生环境**%0A%0A- antd 版本:%0A- 操作系统及版本:%0A- 浏览器及版本:%0A- 在线演示地址:%0A%0A**重现步骤**%0A%0A1. ...%0A2. ...%0A">报告 Bug</a>
</li>
<li>
<h3>©2015 蚂蚁金服体验技术部出品</h3>
<h3>文档版本:<span id="versions-select"></span></h3>
</li>
</ul>
</footer>
<script src="https://t.alipayobjects.com/images/rmsweb/T1AmXhXg0kXXXXXXXX.js" data-no-instant></script>
<script data-no-instant>
InstantClick.on('change', function() {
InstantClickChangeFns.forEach(function(fn) {
fn();
});
});
InstantClick.init();
</script>
</body>
</html>