在textfield的maxlength上调用javascript函数

时间:2012-12-10 23:13:41

标签: javascript

我正在寻找一个在达到文本字段的最大长度时自动调用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.

1 个答案:

答案 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;}
}