ajax駆動の郵便番号検索があります。フィールドが必要な文字数(zipの場合は5)に達した後、キーアップ時にサービスの呼び出しが行われます。ただし、フィールドに表示されていなくてもユーザーが入力を続けると(6文字以上)、ajax呼び出しが行われ、データを返すとnullエラーになります。
html
<input type="text" value="" id="billZipCode" name="billZipCode" class="smallInput coreAddrBill" maxlength="5">
javascript
//show city/state on input maxlength
$("input#billZipCode").live("keyup", function( event ){
if(this.value.length == this.getAttribute('maxlength')) {
if ($(this).valid() == true ) {
zipLookup(this, "USA");
}
}
});
//zip code lookup
function zipLookup(myField, myCountry) {
$.ajax({
type: "POST",
url: postalCodeLookupURL,
dataType:"text json",
data: { postalcode: $(myField).val(), country: myCountry },
success: function(data) {
var isError = data.isError;
var city = data.city;
var juris = data.juris;
if(isError == "false"){
$(myField).parent().next('div').find('input').val(city);
$(myField).parent().next('div').next('div').find("select option[value='" + juris +"']").attr('selected', 'selected');
$("#createAccount").validate().element($(myField).parent().next('div').find('input'));
$("#createAccount").validate().element($(myField).parent().next('div').next('div').find("select"));
}
},
error: function(){
alert('failure');
}
});
}