2010-07-30 41 views
1

我确信这个问题已经被问到,并且在这个主题上发现了相当多的资源,但我仍然很困惑,不知道如何继续。用.net和jQuery丢失

我有一个textarea,其数据我需要发送到服务器,我需要捕获的结果是一个字符串。这是我的尝试:

$(document).ready(function() { 

    $('#output-box').hide(); 

    $('#form1').submit(function() { 
     var input = $('#txtinput').val() 
     $.post('Default.aspx', { func: "ParseData" }, function (data) { 
      $('#output-box').load(data).fadeIn(); 
     }); 
    }); 
}); 

我是多么可怕?

回答

2

关闭,但试试这个:

$(function() { // I like the shorthand way 

    $('#output-box').hide(); 

    $('#form1').submit(function() { 
     var input = $('#txtinput').val(); 
     $.post('Default.aspx', { func: "ParseData" }, function (data) { 
      $('#output-box').val(data).fadeIn(); // set the value to the returned data 
     }); 
     return false; // block the normal submit action 
    }); 
}); 

基本上,您使用val()功能改变textarea的价值,而不是“加载”数据进去。此外,您需要从事件处理程序返回false,否则您将发送AJAX请求对表单执行常规,后置操作。

编辑:根据您的评论。如果您需要先致电parseData,那么类似这样的事情可能是合适的。

$(function() { 

    $('#output-box').hide(); 

    $('#form1').submit(function() { 
     var input = parseData($('#txtinput').val()); 
     $.post('Default.aspx', { txtinput: input }, function (data) { 
      $('#output-box').val(data).fadeIn(); 
     }); 
     return false; 
    }); 
}); 
+0

+1 - good point re'return false'。如果没有意识到的话,这可能会导致“伙伴”疯狂! – 2010-07-30 21:32:13

+0

谢谢你的回应,但我想我没有把我的问题弄清楚。当我放入func:“ParseData”时,我的表单数据将被发送到函数中?此外,我抓住了文本框的内容,但我忘了对它们做任何事情 - 就像func:“ParseData(input)”合适吗? – Radu 2010-07-30 21:33:55

+0

@Radu - 你现在拥有它的方式,'func'将作为一个请求参数传递,'parseData'作为值。如果parseData是一个javascript函数,那么您应该调用它并将结果作为适当的参数传递给服务器端。我会用一个例子来更新。 – tvanfosson 2010-07-30 21:41:23