2010-07-30 63 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