title: Vee-validate: Custom rule gets multiple times called
body: <p>I have a custom rule to check if a name is unique, the textfield exists multiple times in my form, because the the form is repeatable</p>
  
  <p>I have done a small simplyfied demo there -> <a href="https://codesandbox.io/s/v81mxn2ojy" rel="nofollow noreferrer">https://codesandbox.io/s/v81mxn2ojy</a> take a look in the console to see that the validation gets multiple times called if I write inside  the textfields. It stacks if I switch between the textfields and change the value.</p>
  
  <p>template</p>
  
  <pre><code>&lt;p class="sizes__input" v-for="(size, i) in sizes"&gt;
    &lt;span&gt;Size: &lt;/span&gt;
    &lt;input
      type="text"
      :name="`prefix${i}`"
      class="textfield max-dim__input"
      v-model="size.prefix"
      maxlength="8"
      autocomplete="off"
      v-validate="{ required: true, unique: prefixes }"
      :class="{ error: errors.has(`prefix${i}`) }"
    /&gt;
  &lt;/p&gt;
  </code></pre>
  
  <p>script</p>
  
  <pre><code>data() {
      return {
        sizes: [
          { prefix: "xl_", width: "1400", height: "1400" },
          { prefix: "l_", width: "1100", height: "1100" },
          { prefix: "m_", width: "800", height: "800" },
          { prefix: "s_", width: "600", height: "600" },
          { prefix: "thumb_", width: "200", height: "200" }
        ]
      };
    },
    computed: {
      prefixes() {
        console.log("prefix");
        if (this.sizes) {
          return this.sizes.map(item =&gt; {
            return item.prefix;
          });
        }
      }
    }
  </code></pre>
  
  <p>rule</p>
  
  <pre><code>const unique = {
    getMessage(field) {
      return `Such ${field} already exists.`;
    },
    validate(value, args) {
      if (value) {
        console.log(value, args, args.indexOf(value));
        return args.indexOf(value) === -1;
      }
      return false;
    }
  };
  
  Validator.extend("unique", unique, {
    immediate: false
  });
  </code></pre>
  
  <p><strong>ok found a solution</strong> On focus I filter the data and send this to my validator.</p>
  
  <p>inputfield</p>
  
  <pre><code>&lt;input
      v-validate="{ required: true, unique: filteredSizes }"
      @focus="filterSizes(i);"
  </code></pre>
  
  <p>added filteredSizes</p>
  
  <pre><code>data() {
    return {
      filteredSizes: [],
      sizes: 
  </code></pre>
  
  <p>on focus</p>
  
  <pre><code>filterSizes(i) {
    const otherSizes = [...this.sizes];
    otherSizes.splice(i, 1);
    this.filteredSizes = otherSizes.map(item =&gt; {
      return item.prefix;
    });
  }
  </code></pre>
  
  <p><a href="https://codesandbox.io/s/38qyyymyw5" rel="nofollow noreferrer">https://codesandbox.io/s/38qyyymyw5</a></p>