故事: 今天在使用ivew写页面的时候,发现页面的select查询条件里面,自从加入了搜索功能后,就出现了问题,选中了数据中,下拉框中不显示值了,点开下拉框的时候也看到了是选中的,查询事件也自动触发了,但是就是不显示选中的值,我用鼠标划选了下,发现“全是空格”,使劲往后划选的话,会发现是有值的,但是两边多了N多空格,但是代码也仔细检查了,没有任何问题,什么原因来?
html代码:
<i-Col span="5">
<Form-Item label="考试地点" style="width:260px;" prop="ksdd">
<i-select :label-in-value="true" v-model="queryForm.ksdd" @on-change="query" filterable>
<i-option v-for="dd in ddlist" :value="dd.ddid" v-bind:key="dd.ddid" >
{{dd.ddmc}}
</i-option>
</i-select>
</Form-Item>
</i-Col>
效果:
原因:原因就出在代码的规范化上面,我习惯性将一对标签中的获取值的写法单独回车换行,因为这样好找,凸显主题,问题就出在这里,iview把我换行的那个N多空格也作为<i-option> </i-option>标签中的值了。这让我想起了
<textarea></textarea>标签,一样的毛病
解决:不让值换行就可以了。
<i-Col span="5">
<Form-Item label="考试地点" style="width:260px;" prop="ksdd">
<i-select :label-in-value="true" v-model="queryForm.ksdd" @on-change="query" filterable>
<i-option v-for="dd in ddlist" :value="dd.ddid" v-bind:key="dd.ddid" >{{dd.ddmc}}</i-option>
</i-select>
</Form-Item>
</i-Col>