テキスト フィールドの最大長に達したときに JavaScript 関数を自動的に呼び出すスクリプトを探しています。
ここで見つけたこのスクリプトを変更しようとしましたajax call after x characters
$("input#zipcode").live("keyup", function( event ){
if(this.value.length == this.getAttribute('maxlength')) {
if(!$(this).data('triggered')) {
// set the 'triggered' data attribute to true
$(this).data('triggered',true);
if ($(this).valid() == true ) { loadXMLDoc(); }
}
} else { $(this).data('triggered',false); }
});
これは、loadXMLDoc 部分を含むコードの一部です。
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
document.getElementById("state_insert").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","state_insert.asp?zipcode="+document.getElementById('zipcode').value,true);
xmlhttp.send();
}
maxlength に達したら、追加のパラメーターを渡す必要のない "LoadXMLDoc" 関数を呼び出すようにします。
現時点では、次のように onblur="LoadXMLDoc()" に設定しています。
[input name='zipcode' type='text' class="form_elements" id='zipcode' tabindex='11' autocomplete='off' onchange="this.value=extractNumeric(this.value)" onkeypress="return isNumericKey(event)" value='' size="4" maxlength="5" onblur="loadXMLDoc()" /]
< と > は許可されていないため、[ と ] を使用しました。
テキストフィールドのプロパティで、5桁の郵便番号が入力されるとすぐに読み込まれることを望みます.
前もって感謝します :)
Robert.