簡體   English   中英

從具有相同類的輸入字段中獲取所有值,然后通過AJAX調用發送到腳本

[英]Obtain All Values from Input Fields Having Same Class and Send to a Script via an AJAX Call

我有一個包含以下輸入字段的表單:

<input type="text" class="date" name="date[]" onkeyup="showHint()" />
<input type="text" class="date" name="date[]" onkeyup="showHint()" />
<input type="text" class="date" name="date[]" onkeyup="showHint()" />

然后,我有以下JS函數:

function showHint()
{
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 && xmlhttp.status==200)
    {
  //GET JSON from Validation.php and extract the nodes
  var response = xmlhttp.responseText;
  var parseJson = JSON.parse(response);
  var resultCode = parseJson.code;
  var resultMessage = parseJson.message;

    var DoB = [];

           $(".date").each(function(){
               DoB.push($(this).val());
            });

    var newDob = DoB.slice(0,-1);

    }
  }
xmlhttp.open("GET","/validation.php?q="+newDob,true);
xmlhttp.send();
} 

但我收到以下錯誤:

myfile.js:352 Uncaught ReferenceError: newDob is not defined
    at showHint (myfile.js:352)
    at HTMLInputElement.onkeyup (VM3224 :618)
showHint    @   myfile.js:352
onkeyup @   VM3224 :618

我想做的是獲取類'date'的所有字段並將其發送-分隔到一個外部腳本。

嘗試使用序列化器內置的jQuery

 console.log($('form').serialize()) // in your submit function 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form> <input type="text" class="date" name="date[]" onkeyup="showHint()" /> <input type="text" class="date" name="date[]" onkeyup="showHint()" /> <input type="text" class="date" name="date[]" onkeyup="showHint()" /> </form> 

關於您的方法有范圍問題,請檢查以下代碼

function showHint()
{

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 && xmlhttp.status==200)
{
//GET JSON from Validation.php and extract the nodes
var response = xmlhttp.responseText;
var parseJson = JSON.parse(response);
var resultCode = parseJson.code;
var resultMessage = parseJson.message;



 }
}
var DoB = [];

       $(".date").each(function(){
           DoB.push($(this).val());
        });

 var newDob = DoB.slice(0,-1);
 xmlhttp.open("GET","/validation.php?q="+newDob,true);
 xmlhttp.send();
} 

您無法在onreadystatechange事件中定義變量,因為在您調用open方法時該變量將不可用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM