IE6-8 is Not Supported

jQuery でフォームに入力された文字を判別し部分一致した場合に処理を実行する方法

フォーム関係のバリデーションプラグインを探していたのですが、歯がゆいところに手が届かなかったで自作してみました。以下、簡単なサンプルと説明です。

1. サンプルコード

HTML 部分は普通の input タグ。お好みで装飾しましょう。

<input type="text" id="text">

続いて javaScript 部分。まず、txt に入力された値を格納しておきます。次に部分一致の判別をしたい文字列を ary という配列に格納し、length を使って格納された個数を取得。あとは回数分だけ for 文で回して indexOf を使い部分一致の判別をします。このコードでは判別のタイミングをフォーカスが離れたときにしています。

$('#text').focusout(function () {
	var txt = $(this).val();
	var ary = ['red', 'blue', 'green'];
	var num = ary.length;
	for (var i = 0; i < num; i++) {
		if (txt.indexOf(ary[i]) != -1) {
			// Partial Match
			alert('Partial Match !');
		}
	}
});

このサンプルの場合フォームに redbluegreen を含む文字列 (bluesky とか) があった場合アラートが出ます。indexOf の詳しい判別の仕方は ここ を参照。

単純に値を含むか検証する際は jQuery の inArray を使うのもよさそうです。

ads by google