服务器端验证后如何使Vue不替换我的旧值

Posted

技术标签:

【中文标题】服务器端验证后如何使Vue不替换我的旧值【英文标题】:How to make Vue not replace my old value after the server side validation 【发布时间】:2017-10-20 22:17:21 【问题描述】:

我正在使用 laravel 的服务器端验证,并在出现验证错误的情况下修改旧值。

<input type="text" class="form-control" name="nombre" value=" old('nombre')">

但现在我需要使用 vue 验证客户端上的输入,因为其他东西需要它。

<input type="text" class="form-control" name="nombre" value=" old('nombre')" v-model="vNombre" v-on:keyup="validarNombre">

问题在于,当服务器端的验证失败时,旧的输入值被替换为空字符串,因为 Vue 正在初始化该变量。请帮忙,谢谢阅读。

<script type="text/javascript">
  var avatar = new Vue(
    el: '#validaciones',
    data: 
      vNombre: '',
      validNombre: false,
    ,
    methods: 
      validarNombre: function()
        if (this.vNombre == '') 
          this.validNombre = false
        
        else 
          this.validNombre = true;
        
      
    
  )
</script>

【问题讨论】:

【参考方案1】:

由于 vue 正在覆盖字段数据,您可以在 vNombre vue 数据字段中使用 old('nombre')

data: 
   vNombre: ' old("nombre")', //Be careful with single and double quotes
   validNombre: false,
,

【讨论】:

谢谢!这就是我使用的:$('input[name=nombre]').val(),它也工作得很好,但你的解决方案更好

以上是关于服务器端验证后如何使Vue不替换我的旧值的主要内容,如果未能解决你的问题,请参考以下文章

如何使服务器/srr 仅呈现为 vue 组件?

如何在 Vue.js 中显示错误数组?使用 Laravel 进行后端验证

如何在节点 js 的服务器端验证谷歌身份验证令牌?

Vue中如何使用axios发送jsonp跨域验证

Symfony2 表单验证器 - 在刷新之前比较旧值和新值

asp.net core配合vue实现后端验证码逻辑