HTML中实现select下拉框和input输入框组合

一、下拉框 + 输入框

select下拉框 结合 input框

支持下拉框选择,支持包含内容检索,支持手动输入

<html>  
    <head>  
        <title>可编辑下拉框</title>  
        <meta charset="UTF-8" />  
    </head>  
    <body>  
        <div class="appNameSelect">
            <a>联系方式:</a>
            <input id="appName" type="text" list="appNamelist" style="padding:0.5em;border-radius:10px;">
            <datalist id="appNamelist">
                <option>WeChat(微信)</option>
				<option>QQ</option>
				<option>Google Talk</option>
				<option>Twitter</option>
                <option>Facekbook</option>
            </datalist>
        </div>
    </body>  
</html>  

 

  • 25
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
下面是一个简单的实现示例: ``` <template> <div class="form-group"> <label>{{ label }}</label> <div class="form-control"> <select v-model="selectedItem" @change="validateInput"> <option value="">请选择</option> <option v-for="item in options" :key="item.value" :value="item.value">{{ item.label }}</option> </select> <input v-model="inputValue" @input="validateInput" /> <div class="error-message">{{ errorMessage }}</div> </div> </div> </template> <script> export default { props: { label: { type: String, required: true }, options: { type: Array, required: true }, validate: { type: Function, required: true } }, data() { return { selectedItem: '', inputValue: '', errorMessage: '' } }, methods: { validateInput() { const isValid = this.validate(this.selectedItem, this.inputValue) this.errorMessage = isValid ? '' : '输入格式不正确' } } } </script> <style> .form-group { margin-bottom: 20px; } .form-control { display: flex; align-items: center; } .form-control select { margin-right: 5px; } .error-message { color: red; font-size: 12px; margin-top: 5px; } </style> ``` 在父组件,你可以这样使用它: ``` <template> <div> <InputWithSelect label="姓名" :options="nameOptions" :validate="validateName" /> </div> </template> <script> import InputWithSelect from './InputWithSelect.vue' export default { components: { InputWithSelect }, data() { return { nameOptions: [ { label: '张三', value: 'zhangsan' }, { label: '李四', value: 'lisi' }, { label: '王五', value: 'wangwu' } ] } }, methods: { validateName(selectedItem, inputValue) { return /^[a-zA-Z]+$/.test(inputValue) } } } </script> ``` 如上代码所示,你需要传递一个选项数组、一个验证函数以及一个标签字符串给 `InputWithSelect` 组件。选项数组包含下拉框的选项,验证函数接收两个参数(下拉框的选项和输入框的值),并返回一个布尔值表示是否通过验证。在子组件,我们可以通过 `v-model` 指令来双向绑定下拉框输入框的值,并在 `validateInput` 方法调用验证函数,更新错误信息。最后,我们在模板显示错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学弟不想努力了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值