2014-10-27 32 views
0

我試圖從文本框中獲取值並將其發佈到表上,但是當我嘗試console.log成功:函數(數據)內的「數據」時,它顯示空數據。但是如果我在$ .ajax之外進行安全控制,它會顯示正確的值。如何從文本框jquery和ajax獲取值?

,這裏是我的jQuery功能

function SaveData() { 

      var data = $("#inputToDo").val(); 
      $.ajax({ 
       type: "POST", 
       dataType: "json", 
       success: function (data) { 
        var row = ""; 
        $.each(data, function (index, value) { 
         console.log(data); 
         row += "<tr><td>" + data + "</td></tr>"; 
         $("#bod").html(row); 
        }); 
       } 
      }); 
      console.log(data); 
      data = $("#inputToDo").val(""); 
      $("#inputToDo").focus(); 

    } 

我的html:

<input id="inputToDo" name="inputToDo" /> 
<button id="buttonSave" name="buttonSave" onclick="SaveData()"> 
    Save 
</button> 

<table id="tableToDo" border="1"> 
    <tr> 
     <td id ="ToDo"></td> 
     <td id ="Execution"></td> 
    </tr> 
    <tbody id="bod"></tbody> 
</table> 

任何幫助,將不勝感激。謝謝

+4

他們是兩個不同的'data'變量 – devqon 2014-10-27 08:44:06

+0

沒有'網址'在ajax函數中,它是否正確? – Gowri 2014-10-27 09:08:38

回答

0
var data = $("#inputToDo").val();  // outer variable 

success: function (data)    //inner variable 
{    

      //please note here you are access data variable of success function. 
      // which is passed as parameter so outer data variable will always 
      //get override by inner variable 
} 

解決方案:嘗試改變外部變量的名稱,然後嘗試

0

您使用的數據變量(var data = $ ("#inputToDo"). val();),也可以作爲一個參數(success : function (data) {)。

當您嘗試成功,mentod內,數據將參照阿賈克斯成功響應,出邊會是指數據變量,它是你的「#inputToDo」值

,而不是使用可變數據可以你像inputToDoVal像下面的代碼

var inputToDoVal = $ ("#inputToDo"). val(); 
0

我已經爲你做了一個工作小提琴。

我basicly改變了JavaScript的一點,我假設你已經包括jQuery的...

$('document').ready(function(){ 
    SaveData = function(){ 
     var data = $("#inputToDo").val(); 
     alert(data); 
    } 
} 

這裏的Fiddle