カスタムリモート検証呼び出しからの応答を処理するには、カスタムルールを作成する必要があります。この例では、ユーザーニックネームが利用可能かどうかを確認しています。
jquery検証cutomルール:
$('#nick').rules("add", {
// nick is required
required: true,
// nick can have from 3 to 30 characters
rangelength: [3,30],
remote: {
url: "/your-api-url",
type: "GET",
data: {
// nick is id of input field from html
nick: function() {
// get user input from field value
return $('#nick').val();
}
},
// custom filtering response from api call
dataFilter: function(data) {
// we need to parse data string to json
var json = JSON.parse(data);
if(json.nick === "true" || json.nick === true) {
// jquery validate remote method
// accepts only "true" value
// to successfully validate field
return '"true"';
} else {
// error message, everything that isn't "true"
// is understood as failure message
return '"This nick is already taken."';
}
}
}
});
ニックネームが利用可能な場合のAPIからの応答:
{nick:true}
html:
<input name="nick" id="nick" value="" placeholder="Nick" type="text" />