アロハ!バリデータのリモートメソッド、JSON配列との値の一致
郵便番号の入力に対して基本的な検証を実行し、入力された値をチェックしてキーレスJSON配列に存在するかどうかを確認します。 リモート機能を追加するまで、すべてが期待通りに機能します。可能であれば、この関数が組み込まれているのでこの関数を利用したいと思いますが、私は他の検証方法にもオープンしています。 http://jsfiddle.net/sangria/xLGae/
はおそらく無関係な、しかし提出のコンソールでこのエラーを取得:
ここでは、リモートせずに、この例の作業
Uncaught Error: NOT_FOUND_ERR: DOM Exception 8
JSON配列形式:
[94102,94117,94110,99950,...]
をjQueryと検証:
jQuery.validator.addMethod("postalcode", function(postalcode, element) {
return this.optional(element) || postalcode.match(/^([0-9]{5})$/);
}, "Please specify a valid postal/zip code");
$("#postal").validate({
rules: {
zipcode: {
required: true,
postalcode: true,
digits: true,
minlength: 5,
maxlength: 5,
remote: {
type: 'post',
contentType: 'application/json; charset=utf-8',
url: "data/uszipsonly.json",
dataType: 'json',
async: false
}
}
},
messages: {
zipcode: { remote: "Please specify a US postal code"}
}
});
ドキュメントといくつかの他の良い点はexamplesです。それで、ここに似たスレッドが見つかりましたが、まだまだこれでやや上がっています。
啓発のためにコミュニティに感謝します。
Merci de m'avoircorrigé。確かにありがとう。 ここではjQuery.inArray()が必要でした。この場合は、入力された値をparseInt()する必要があり、-1より大きい値を返すかどうかを調べて配列内の存在を確認してください: '$ .inArray (parseInt(postalcode)、validZIP)> -1; ' 元々私は[this](http://www.opencoder.co.uk/2010/07/jquery-remote-form-validation)のようなものを実装しようとしていました。 /)、しかし.inArray()はそのトリックを行います。 –