Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在元素UI输入v2.x中键入值?_Javascript_Vuejs2_Element Ui_Vue Events - Fatal编程技术网

Javascript 如何在元素UI输入v2.x中键入值?

Javascript 如何在元素UI输入v2.x中键入值?,javascript,vuejs2,element-ui,vue-events,Javascript,Vuejs2,Element Ui,Vue Events,这是我的最小工作示例,下面的示例使用了我们目前在这个项目中使用的2.x版本的element UI {{input} onInput(val){ console.log('input',val) this.input=val 此.$emit('input',val) } 在以前的版本1.x中,输入能够在on@change期间以很小的延迟(几毫秒)发出值。但是,它在v2.x上发生了变化。你能告诉我如何编辑这段代码,让它在我完成输入后立即发出并验证值吗 是否可以创建与1.x版类似的行为? 请在此处

这是我的最小工作示例,下面的示例使用了我们目前在这个项目中使用的2.x版本的element UI

{{input}
onInput(val){
console.log('input',val)
this.input=val
此.$emit('input',val)
}
在以前的版本1.x中,输入能够在on
@change
期间以很小的延迟(几毫秒)发出值。但是,它在v2.x上发生了变化。你能告诉我如何编辑这段代码,让它在我完成输入后立即发出并验证值吗

是否可以创建与1.x版类似的行为?
请在此处查看:

谢谢。

试试这个:

<el-input-number placeholder="Please input" v-model="input" @input.native="onInput" />

不要使用
v-bind
,只需使用
v-model
并使用本机输入事件即可。根据本文档,没有
输入
事件,只有
el输入编号
标签的
更改
事件


链接到他们的文档:

因为在未聚焦和
v-model
v-bind
似乎不起作用之前,不会对输入更改应用验证,所以我们可以使用
DOM
ref
访问输入标记,然后在函数内部进行验证

<el-input-number placeholder="Please input" v-model="input" :min="min" :max="max" @input.native="onInput" />

为什么不使用element ui提供的验证框架,它支持输入验证

var Main={
数据(){
返回{
规则格式:{
名称:“”,
},
规则:{
姓名:[
{必需:true,消息:“请输入活动名称”,触发器:“更改”},
{min:3,max:5,消息:'Length应该是3到5',触发器:'change'}
],
}
};
},
方法:{
提交格式(formName){
此.$refs[formName].validate((有效)=>{
如果(有效){
警报(‘提交’);
}否则{
log('error submit!!');
返回false;
}
});
},
重置表单(formName){
这是。$refs[formName].resetFields();
}
}
}
变量向量=Vue.extend(主)
新Ctor().$mount('#app')
@import url(“//unpkg.com/element-ui@2.14.1/lib/theme chalk/index.css)

创造
重置

您试图实现的验证类型是什么?您遇到的问题是什么specific@Chandan元素ui为验证提供道具(最小值、最大值……),当您取消焦点输入时,值将被验证并发出。例如,我可以设置输入最大值100,但我键入10000。输入validate my number并根据我的规则设置max number,因此值将为100。这是在我取消焦点输入后发生的,但我需要确保这种动态行为。用户应该编辑输入,并根据输入的数字查看其他计算。@Chandan我还编辑了问题,并添加了到版本1的数字输入的链接,这是我的目标here@DenisStephanov因此,您需要的是在用户输入时,在用户未完成验证时停止用户输入?@IrfandyJip Hi,检查元素ui版本1.x的文档的pls url。这个版本中的数字输入正是我需要的。它通过用户交互立即释放价值并进行验证。第2版emmit和validate在您从Input中退出后感谢您的努力,但这将处理原始事件对象。我正在寻找如何触发默认输入事件,但在键入后几乎没有延迟,而不是保留输入:/我在元素UI1.x的数字输入中添加了链接,在那里你可以看到我需要实现的行为我不确定你是否有这个问题,但是默认的输入事件每次触发两次。有些人已经报道了这个问题,我知道你,但我希望会有一些方法来实现这一点,但它看起来没有。。。我投票支持你们两个为effortHi分配赏金我,似乎没有更好的方法来达到我的要求,所以我投票支持你们和kien为努力分配赏金。谢谢你好,我的主要问题是emmiting输入值。。。我的用例是,当用户键入一些值时,值被验证,例如,通过输入最小/最大验证进行编辑,然后在发出小延迟(200ms)的情况下,我需要将该值用于其他应实时进行的计算。。。但在用户延迟更改后发出,值在您离开输入后发出。这对我的计算来说太晚了。。。用户应该看到计算结果,通过这些计算更改数值我认为这不是修改用户输入的好方法。因为它可能会变得非常混乱。Personnaly我会对输入进行去抖动,以便允许人们输入多个字符,如果输入不正确,则输出不正确(垃圾输入=垃圾输出)。您仍然可以使用一些计算值来确保您的计算有一些合适的输入值。它的默认行为是在EL UI中输入数字,如果输入的最大值为100,并且用户输入10000,则在对元素UI进行去盎司处理后,将此值更改为最大可用值,即100
<el-input-number placeholder="Please input" v-model="input" :min="min" :max="max" @input.native="onInput" />