我正在寻找一个在达到文本字段的最大长度时自动调用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.
答案 0 :(得分:0)
您可以使用onkeypress事件执行此操作,例如:
onkeypress="return isNumericKey(event,this)"
以及它还应该检查最大长度。代码应该是:
function isNumericKey(evt,zip) {
// your Number
// check here
var zipLen=zip.getAttribute('maxlength');
var zipValueLen=zip.value.length;
if(zipValueLen>=zipLen) { LoadXMLDoc(); return false;}
}