图形界面介绍<Set Preference—Edit>

本文详细介绍了GUI中Set Preference的Edit模块,包括Honor Relative Floorplan Constraints、Single Layer Mode For Routing Blockage、Show Delete Confirmation Box等设置项的功能,以及Box Stretch Restrictions和Move Restrictions的各种模式。这些设置能帮助用户更精细地控制设计操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次要介绍的GUI上的按键是Set Preference中的Edit模块。这个设置模块大家平时可能用得比较少,但它还是具有很多小用处的。

 

1. Honor Relative Floorplan Constraints:  这个按键控制着relative floorplan的作用,如果关了以后,relative floorplan就不起效果了,reference object不会跟着target object一起移动或者改变形状

 

2. Single Layer Mode For Routing Blockage: 采用这个mode可以单独移动一层routing blockage, pin blockage, Ptn Feedthrough等与layer有关的blockage,默认是所有layer层一起移动的。

 

3. Show Delete Confirmation Box: 显示一个确认删除的对话框

4. Box Stretch Restrictions: 

N

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- import CSS --> <link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.15.9/theme-chalk/index.css "> <style> body{ margin: 0;/*去掉自带外边距*/ background-image: url("imgs/bg.jpg"); /*cover设置封面效果*/ background-size: cover; text-align: center; } h1{ font-size: 72px; color: #0096dc; margin-bottom: 0; } img{width: 100px} h2{ font-size: 32px; color: #0096dc; margin-bottom: 0; } </style> </head> <body> <div id="app"> <h1>欢迎来到品珂优选</h1> <img src="imgs/shark.png" alt=""> <h2>Selective Preference</h2> <el-card style="width: 600px;height: 300px;margin: 0 auto; background-color: rgba(255,255,255,0.3)"> <el-form label-width="60px" style="width: 400px;margin:40px auto"> <el-form-item label="用户名"> <el-input type="text" name="username" placeholder="请输入用户名"></el-input> </el-form-item> <el-form-item label="密码"> <el-input type="password" name="password" placeholder="请输入密码"></el-input> </el-form-item> <el-form-item> <el-checkbox>记住用户名和密码</el-checkbox> </el-form-item> <el-form-item> <el-button style="position: relative;right: 30px" type="primary">登录</el-button> </el-form-item> </el-form> </el-card> </div> </body> <!-- import Vue before Element --> <script src="https://cdn.staticfile.org/vue/2.6.14/vue.min.js "></script> <!-- import JavaScript --> <script src="https://cdn.staticfile.org/element-ui/2.15.9/index.min.js "></script> <script> let v = new Vue({ el: '#app', data: function() { return { user:{username:"",password:"",nick:"",id:"",rem:false} } }, methods:{ login(){ axios.post("/login",v.user).then(function (response) { if (response.data == 1) { location.href="/admin.html"; }else if (response.data == 2) { v.$message("用户名不存在"); } else if (response.data==3) { v.$message("密码错误"); } }) } }, created:function () { //取出Cookie里面的用户名和密码显示到页面中 //'password=123; username=Tom' let arr = document.cookie.split(";"); //遍历数组 for (let cookie of arr) { let cookieArr = cookie.split("="); let key = cookieArr[0].trim(); let value = cookieArr[1]; if (key == "username") { this.user.username = value; } if (key == "password") { this.user.password = value; } } }, }) </script> </html>为什么输入框输入不进去东西,是少了什么代码
最新发布
06-19
<think>我们正在解决ElementUI输入框无法输入内容的问题。根据用户提供的引用和问题描述,我们需要分析可能的原因并提供解决方案。常见原因:1.输入框绑定的值(v-model)没有正确初始化或在组件中没有声明。2.使用了v-model的修饰符(如.lazy,.trim)可能导致输入行为改变。3.输入事件被阻止(如使用了oninput或onchange事件处理函数,并在其中对输入进行了限制,可能导致无法输入)。4.表单验证规则(rules)阻止了输入(例如,规则要求必须为数字,但输入了非数字字符,而输入限制又过于严格)。5.输入框被禁用(disabled)或只读(readonly)。6.父组件或样式的影响(比如覆盖层阻止了事件)。根据用户提供的引用[1]和[2],我们看到了一些输入限制的例子,这些限制可能导致无法输入内容。例如:-引用[1]中,输入框通过oninput事件处理函数进行输入限制,只允许输入数字、负号和小数点,并且有复杂的逻辑。如果逻辑有误,可能导致无法输入。-引用[2]中,使用了`v-model.trim`和`oninput`事件来限制输入(只允许数字和小数点),同时使用了表单验证规则(rules)。因此,我们可以从以下几个方面进行排查和解决:步骤1:检查v-model绑定确保在data中正确初始化了绑定的变量。例如:data(){return{form:{code:''//确保这里初始化了}}}步骤2:检查输入事件处理如果使用了oninput事件(如引用[1]和[2]中的例子),请检查事件处理函数是否过于严格导致无法输入。例如,引用[1]中的代码逻辑较为复杂,容易出错。可以尝试简化或使用其他方法。步骤3:检查表单验证规则(rules)如果输入框在el-form-item中设置了prop,并且在el-form上绑定了rules,那么需要检查rules中对应字段的规则。例如,如果规则要求必须是数字,但输入的是字符串,则可能导致验证失败,从而阻止输入(虽然通常不会阻止输入,但可能会显示错误提示,但输入框本身还是可以输入的)。但是,如果规则中使用了自定义验证函数,并且在验证函数中做了阻止输入的操作,则可能有问题。步骤4:检查是否有禁用或只读属性检查el-input组件上是否有disabled或readonly属性,将其移除。步骤5:检查是否有其他事件阻止了输入例如,在输入框上可能有键盘事件(如keydown)并调用了event.preventDefault()。步骤6:尝试移除输入限制如果输入框有复杂的输入限制(如引用[1]中的oninput事件处理),可以尝试先移除这些限制,看是否能够输入,以确定问题是否出在输入限制上。解决方案建议:1.简化输入限制:使用更可靠的方法限制输入。例如,可以使用Vue的watch或自定义指令来实现,或者使用第三方库(如vue-input-only-number)。但要注意,在限制输入的同时不要导致无法输入。2.对于数字输入,可以使用type="number",但注意这并不能完全限制非数字输入(浏览器实现不同),并且允许输入e(科学计数法)和多个小数点。因此,通常需要结合其他方法。3.使用更健壮的输入限制方法,例如:oninput="value=value.replace(/[^\d.]/g,'')"//只允许数字和小数点oninput="value=value.replace(/[^-\d.]/g,'')"//允许负号、数字和小数点但要注意,这样可能允许输入多个负号或小数点,需要进一步处理。4.推荐使用自定义方法,在方法中进行处理,例如:<el-inputv-model="form.code"@input="handleInput"></el-input>methods:{handleInput(value){//只允许数字、小数点和负号,且负号只能在开头letnewValue=value.replace(/[^\d.-]/g,'');//进一步处理:只允许第一个负号在开头if(newValue.indexOf('-')>0){newValue=newValue.replace(/-/g,'');}elseif(newValue.indexOf('-')===0){//保留开头的负号,并去掉后面可能出现的负号newValue='-'+newValue.replace(/-/g,'').substring(1);}//处理小数点:只允许一个小数点constparts=newValue.split('.');if(parts.length>2){newValue=parts[0]+'.'+parts.slice(1).join('');}this.form.code=newValue;}}这种方法更灵活,但也要注意不要导致无法输入。5.如果问题仍然存在,检查是否因为其他组件或全局样式的影响。例如,是否有遮罩层覆盖在输入框上?可以使用浏览器开发者工具检查元素。6.如果使用了自定义表单验证,确保验证规则不会在输入时阻止输入。验证规则通常用于提交时的验证,或者实时显示错误信息,但不会阻止输入。根据用户之前的问题,他们可能尝试了输入限制导致无法输入,所以重点检查输入限制逻辑。示例代码(简化版,只允许数字和小数点,不允许负号):<el-inputv-model="form.code"oninput="value=value.replace(/[^\d.]/g,'')"></el-input>但注意:如果使用oninput,并且将value设置为null(如引用[1]中的代码:value=null),这会导致输入框内容被清空,从而无法输入。因此,建议使用v-model和@input结合的方式,避免直接操作DOM(因为Vue是数据驱动的)。例如,引用[1]中的代码:oninput="if(value.slice(0,value.indexOf('-')+2)){if(isNaN(value.slice(1,value.indexOf('-')+999))){value=null}}..."这段逻辑在输入过程中如果判断不通过就会将value设置为null,这可能导致输入框内容被清空,从而无法输入。所以,我们推荐使用Vue的方式来处理,避免直接操作DOM。总结:-首先检查v-model绑定的数据是否在data中初始化。-移除复杂的oninput事件处理,改用@input事件和Vue方法处理。-检查表单验证规则。-确保没有disabled或readonly属性。如果问题仍未解决,请提供更具体的代码片段,以便进一步排查。相关问题:1.如何正确使用ElementUI的表单验证规则?2.Vue中如何实现输入框只能输入数字(包括负数和小数)?3.为什么在ElementUI的输入框中输入内容时会自动清空?4.如何调试Vue组件中输入框无法输入的问题?</think>### Element UI Vue 输入框无法输入内容的原因及解决方案 在 Element UI 的 Vue 项目中,输入框无法输入内容通常由以下原因导致,下面是具体分析和解决方案: #### 常见原因及解决方法 1. **未正确初始化 v-model 绑定值** - **现象**:输入框完全无法输入任何内容 - **原因**:`v-model` 绑定的变量未在 `data` 中初始化 - **解决**: ```vue <script> export default { data() { return { form: { inputValue: '' // 必须初始化绑定值 } } } } </script> ``` 2. **输入限制逻辑过于严格** - **现象**:输入部分字符后无法继续输入 - **原因**:`oninput` 事件处理函数中的正则表达式或逻辑错误(如引用[1][^1]) - **解决**:简化输入限制逻辑 ```vue <el-input v-model="form.value" @input="handleInput" // 改用 Vue 事件绑定 ></el-input> <script> methods: { handleInput(value) { // 允许负数和小数 this.form.value = value.replace(/[^-\d.]/g, '') .replace(/^-(?=\D)/, '') // 禁止开头多个负号 .replace(/(\..*)\./g, '$1'); // 禁止多个小数点 } } </script> ``` 3. **表单验证规则冲突** - **现象**:输入后内容被自动清空 - **原因**:`rules` 验证失败触发重置(如引用[2][^2]) - **解决**: ```vue <el-form :rules="rules"> <el-form-item prop="inputValue"> <el-input v-model="form.inputValue"></el-input> </el-form-item> </el-form> <script> data() { rules: { inputValue: [ { pattern: /^-?\d+(\.\d+)?$/, message: '请输入有效数字' } // 宽松的验证规则 ] } } </script> ``` 4. **Vue 响应性失效** - **现象**:输入时数据不更新 - **原因**:直接修改了嵌套对象属性 - **解决**: ```js // 错误:直接修改嵌套属性 this.obj.property.value = "new" // 正确:确保响应性 this.$set(this.obj.property, 'value', 'new') ``` 5. **第三方组件冲突** - **现象**:仅在特定组件内无法输入 - **解决**: ```vue <el-input v-model="form.value" nativeOnInput></el-input> ``` #### 调试步骤 1. 检查浏览器控制台是否有 Vue 警告或错误 2. 移除所有输入限制逻辑,测试基础功能 3. 使用 `console.log(this.form)` 确认数据绑定状态 4. 检查父组件是否通过 `v-if` 意外销毁了输入框 #### 最佳实践建议 ```vue <template> <el-form> <el-form-item label="数值输入"> <el-input v-model.number="form.numericValue" // .number 修饰符自动转换类型 @input="sanitizeInput" ></el-input> </el-form-item> </el-form> </template> <script> export default { data() { return { form: { numericValue: null // 明确初始化 } } }, methods: { sanitizeInput(value) { // 安全过滤逻辑 this.form.numericValue = value .replace(/[^-\d.]/g, '') .replace(/(\-+)/, '-') .replace(/(\..*)\./g, '$1'); } } } </script> ``` [^1]: 引用自 element-ui 表单输入框限制输入数字方案 [^2]: 引用自 VUE element-ui 表单校验规则实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值