2014-10-27 49 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