1

我正在寻找一个在达到文本字段的最大长度时自动调用 JavaScript 函数的脚本。

我试图修改这段脚本,我在这里找到了x 个字符后的 ajax 调用

$("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();
}

当达到最大长度时,我希望它调用一个“LoadXMLDoc”函数,该函数不需要传递额外的参数。

目前我将它设置为 onblur="LoadXMLDoc()" 像这样:

[输入名称='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.
4

1 回答 1

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;}
}
于 2012-12-25T07:09:46.663 回答