在注册的时候,需要填入邮箱,希望能在用户输入@后能够在文本框下面看见可选择的邮箱,有大神可以指导一下吗
ant design AutoComplete
的第二个示例就是啊
class Complete extends React.Component {
state = {
result: [],
}
handleSearch = (value) => {
let result;
if (!value || value.indexOf('@') >= 0) {
result = [];
} else {
result = ['gmail.com', '163.com', 'qq.com'].map(domain => `${value}@${domain}`);
}
this.setState({ result });
}
render() {
const { result } = this.state;
const children = result.map((email) => {
return <Option key={email}>{email}</Option>;
});
return (
<AutoComplete
style={{ width: 200 }}
onSearch={this.handleSearch}
placeholder="input here"
>
{children}
</AutoComplete>
);
}
}
<body>
<div>
<input type="email" list="mail" id="input">
<datalist id="mail">
<option value="@qq.com">@qq.com</option>
<option value="@baidu.com">@baidu.com</option>
<option value="@360.com">@360.com</option>
<option value="@fuckqq.com">@fuckqq.com</option>
</datalist>
</div>
</body>
<script type="text/javascript">
$('#input').on('input',function() {
$('option').each(function(){
var o = $(this).val();
var p = $('#input').val().replace(/@\S*$/,'');
$(this).val(p+o.replace(/\S*(?=@)/,''));
$(this).text(p+o.replace(/\S*(?=@)/,''))
})
})
</script>
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
随手写的一个demo
邮箱联想补全