配列を検索して、target
の値が一致するかどうかを調べようとしています。文字列の一部の配列を検索
(function ($) {
$.fn.validate = function (x) {
return this.each(function() {
var wrapper = $(this);
var xx = $.extend({
obj: "",
}, x || {});
function initialized() {
$(wrapper).children().bind('keyup', function (e) {
console.log($.grep(xx.obj, function (t) { return t.target.indexOf($(e.target).attr("name")) }));
});
}
initialized();
});
};
}(jQuery));
$('form').validate({ obj: [{ "target": "name=Username", "required": true, "xmin": "5", "xmax": "16" }, { "target": "name=Email", "required": true, "xmin": "5", "xmax": "16" }] });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="form">
<input name="Username" placeholder="Username" />
<input name="Email" placeholder="Email" />
<input type="button" value="Save" />
</form>
このライン:$.grep(xx.obj, function (t) { return t.target == $(e.target).attr("name") }).length
戻り、一致が見つかった場合。私はそれが==
と言うことを知っているので、それがきちんと一致する場合にのみ一致を返します。 $.grep(xx.obj, function (t) { return t.target.contains($(e.target).attr("name")) }).length
編集 Z-骨の回答と一致するように変更コード:
が、それはこのような何かを作るためにそれがかのうです。入力フィールドにユーザーのタイプは、それがその入力からName
値($(e.target).attr("name"))
を取り、値がobj.target
のいずれかに一致するかどうかを確認するためにを検索するときは、まだ正しく
動作しません。
私は 'indexOf'を使用するように私のコードを変更しますが、それは正しく100%いけない仕事。 attrを検索すると、配列内の両方のオブジェクトが返されます。 (コードを実行するとあなたが表示されます)。 –
最終結果を入手してください。私は文字列を達成することについて説明しようとしたが... –