Vue の入力ボックスに負の数値を入力することはできません

王林
リリース: 2023-05-11 10:48:06
オリジナル
2923 人が閲覧しました

Vue は、Web アプリケーションの開発に使用される人気のある JavaScript フレームワークです。 Vue は応答性が高いため、フロントエンド開発をより簡単かつ直感的に行うことができます。つまり、データが変更されるとページが自動的に更新されます。入力ボックスは、Vue アプリケーションで一般的に使用されるコンポーネントの 1 つです。ただし、場合によっては、ユーザーが入力する値の種類や範囲を制限する必要がある場合があります。たとえば、ユーザーが負の数値を入力することは許可されません。この記事では、この機能を Vue に実装する方法を紹介します。

1. v-model ディレクティブを使用する

v-model ディレクティブは、form 要素の値を Vue コンポーネントの data 属性にバインドするために使用されます。入力ボックスでは、v-model ディレクティブを使用して、ユーザーが入力した値を簡単に取得して操作できます。 v-model ディレクティブを使用すると、ユーザーが入力した値が負の数かどうかを検証できます。例:

<input type="number" v-model="value" min="0" @input="checkNegative">
ログイン後にコピー

この例では、type 属性が「number」の入力ボックスを使用し、それを Vue コンポーネントの value 属性にバインドします。さらに、min 属性を 0 に設定して、値が負にならないようにします。ユーザーが入力すると、checkNegative メソッドを呼び出して、入力された値が負の数値かどうかを確認します。

checkNegative() {
  this.value = Math.max(0, parseInt(this.value));
}
ログイン後にコピー

checkNegative メソッドでは、入力された値を整数に変換し、0 と比較します。入力値が 0 未満の場合は、0 に設定されます。このようにして、ユーザーが負の数値を入力することを制限できます。

2. 計算されたプロパティを使用する

v-model ディレクティブに加えて、計算されたプロパティを使用して、ユーザーが入力した値を検証することもできます。 Vue アプリケーションでは、計算プロパティは Vue コンポーネントのデータ プロパティに基づいて計算されます。計算されたプロパティを使用して、ユーザーが入力した値が負であるかどうかを確認し、Vue コンポーネントを更新できます。例:

<template>
  <div>
    <input type="number" v-model="value" @input="updateValue" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      value: 0
    };
  },
  computed: {
    checkedValue: function() {
      return Math.max(0, this.value);
    }
  },
  methods: {
    updateValue: function(event) {
      this.value = parseInt(event.target.value);
    }
  }
};
</script>
ログイン後にコピー

この例では、value プロパティに基づいて計算される、「checkedValue」という計算プロパティを定義します。計算されたプロパティで、value プロパティを 0 以上の値に更新します。入力ボックスでは、入力ボックスの値を、checkedValue 属性ではなく value 属性にバインドします。ユーザーが入力を入力するたびに、updateValue メソッドを使用して value 属性を更新します。

3. カスタム命令の使用

v-model 命令と計算プロパティに加えて、カスタム命令を使用して、ユーザーによる負の数値の入力を制限することもできます。カスタム ディレクティブは、DOM 要素の動作をカスタマイズできる Vue の高度な機能です。カスタム ディレクティブを使用してユーザーの入力を制御し、負の数値が入力されないようにすることができます。

<template>
  <div>
    <input v-negative-number v-model="value" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      value: 0
    };
  },
  directives: {
    "negative-number": function(el, binding) {
      el.addEventListener("input", function(event) {
        var currentValue = parseInt(event.target.value);
        if (currentValue < 0) {
          event.target.value = 0;
          return binding.value;
        } else {
          event.target.value = currentValue;
          return currentValue;
        }
      });
    }
  }
};
</script>
ログイン後にコピー

この例では、「negative-number」というカスタム ディレクティブを定義します。ディレクティブでは、addEventListener メソッドを使用して入力イベントをリッスンします。イベント ハンドラーでは、ユーザーが入力した値が負であるかどうかを確認します。入力が負の数値の場合は 0 に設定され、それ以外の場合は変更されません。

概要

この記事では、Vue アプリケーションの入力ボックスに負の数値が入力できないように制限する 3 つの異なる方法を紹介しました。この機能を v-model ディレクティブ、計算プロパティ、カスタム ディレクティブのいずれで提供する場合でも、Vue は十分な柔軟性を提供します。この記事が Vue の理解を深め、Vue アプリケーションの開発効率を向上させるのに役立つことを願っています。

以上がVue の入力ボックスに負の数値を入力することはできませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート