0

我正在尝试在输入达到 7 个字符时自动提交表单。我尝试了一些 java 脚本代码,但它破坏了我的脚本功能。

任何人都可以帮助我吗.....

<script type="text/javascript">
        var url = "GetCustomerData.php?id="; // The server-side script
       function handleHttpResponse() {  
        if (http.readyState == 4) {
              if(http.status==200) {
                var results=http.responseText;
              document.getElementById('divCustomerInfo').innerHTML = results;
              }
            }
        }

        function requestCustomerInfo() {      
            var sId = document.getElementById("txtCustomerId").value;
            http.open("GET", url + escape(sId), true);
            http.onreadystatechange = handleHttpResponse;
            http.send(null);
        }
function getHTTPObject() {
  var xmlhttp;

  if(window.XMLHttpRequest){
    xmlhttp = new XMLHttpRequest();
  }
  else if (window.ActiveXObject){
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    if (!xmlhttp){
        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
    }

}
  return xmlhttp;


}
var http = getHTTPObject(); // We create the HTTP Object
</script>

<form id="form_home">
    <p>Enter customer ID number to retrieve information:</p>
    <p>Customer ID: <input type="text" maxlength="7" id="txtCustomerId" value="" /></p>
    <p><input type="submit" value="Submit" onclick="requestCustomerInfo()" /></p>
</form>

    <div id="divCustomerInfo"></div>
4

1 回答 1

0

以下是文本框达到 7 个字符时提交表单的代码:

document.getElementById('txtCustomerId').addEventListener('keyup', function(e) {

    if(this.value.length === 7) {
        document.getElementById('form_home').submit();
    }
});

这是它的工作演示:http: //jsfiddle.net/TuVN2/1/

查看您的标记,我猜您想运行 requestCustomerInfo() 而不是提交。如果您提交响应将永远不会被处理。为此,您可以将函数调用移动到 keyup 处理程序中:

document.getElementById('txtCustomerId').addEventListener('keyup', function(e) {

    if(this.value.length === 7) {
        requestCustomerInfo();
    }

});

我也不建议手动滚动您的 ajax 处理程序。考虑使用像 jQuery 这样的库。

于 2013-04-29T14:29:53.330 回答