按钮点击后我无法重置vue数据?

时间:2018-05-30 09:39:49

标签: javascript vue.js

众所周知,输入类型编号允许输入e。我可以通过重新分配vue数据来重置当前输入值,但如果输入中有任何e值,则我的重置方法不起作用!我不知道为什么?

var app = new Vue({
  el: '#app',
  data: {
    tax: ''
  },
  methods: {
    reset() {
       this.tax = ''
    }
   }
})
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<div id="app">
  <input v-model="tax" type="number" >
  <button @click="reset">Reset</button>
</div>

4 个答案:

答案 0 :(得分:3)

更改方法

            using (MailMessage mailMessage = new MailMessage())
              {
                mailMessage.From = new MailAddress(email);
                mailMessage.Subject = "YOUR_SUBJECT";
                mailMessage.Body = "YOUR_MAIL_BODY";

                mailMessage.To.Add(new MailAddress("RECIPIENT_EMAILID"));

                SmtpClient smtp = new SmtpClient();
                smtp.Host = "smtp.gmail.com";
                smtp.Port = 587;
                smtp.EnableSsl = true;

                System.Net.NetworkCredential NetworkCred = new 
                System.Net.NetworkCredential();
                NetworkCred.UserName = "SENDER_MAIL";
                NetworkCred.Password = "SENDER_MAIL_PASSWORD";
                smtp.UseDefaultCredentials = true;
                smtp.Credentials = NetworkCred;

                smtp.Send(mailMessage);
             }

this.tax = ''

this.tax = null
var app = new Vue({
  el: '#app',
  data: {
    tax: ''
  },
  methods: {
    reset() {
       this.tax = null
    }
   }
})

答案 1 :(得分:2)

通过将值设置为空字符串 '',不会更新数字。相反,null肯定会有所帮助。

var app = new Vue({
  el: '#app',
  data() {
    return {
      tax: null
    }
  },
  methods: {
    reset() {
      this.tax = null;
    }
  }
})
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<div id="app">
  <input v-model="tax" type="number" ref="inputNum">
  <button @click="reset">Reset</button>
</div>

甚至可以通过动态更改元素type,从number更改为text来重置它,然后更新tax道具并将类型设置回{ {1}}

number
var app = new Vue({
  el: '#app',
  data() {
    return {
      tax: ''
    }
  },
  methods: {
    reset() {
      this.$refs.inputNum.type = "text";
      this.tax = '';
      this.$refs.inputNum.type = "number";
    }
  }
})

答案 2 :(得分:1)

也许我认为...输入类型是数字,所以它没有约束力。

var app = new Vue({
  el: '#app',
  data: {
    tax: ''
  },
  methods: {
    reset() {
       this.tax = ''
    }
   }
})
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<div id="app">
  <input type="text" v-model="tax">
  <button @click="reset">Reset</button>
</div>

答案 3 :(得分:0)

当我们输入'e'时,输入会认为它意味着'10 ^ n'。所以如果输入2e3,则表示'2 * 10 ^ 3'。现在,如果输入右侧包含“e”的文本,则重置按钮可以正常工作。但是如果输入错误的文本包含'e',浏览器会将输入的值更改为''。我认为这是一个功能。 如果您不想要这个'e',您可以使用正则表达式或“input type =”tel“”或“pattern =”[0-9] *“。