2011-08-02 53 views
0

我仍然有一些jQuery的問題。如果我有這樣的HTML:發佈請求的一些問題

<form method="post"> 
    <textarea id="id_content" rows="10" cols="40" name="content"></textarea> 
    <input id="yes" type="submit" value="submit"> 
</form> 
<form method="post"> 
    <textarea id="id_content" rows="10" cols="40" name="content"></textarea> 
    <input id="no" type="submit" value="submit"> 
</form> 
<form method="post"> 
    <textarea id="id_content" rows="10" cols="40" name="content"></textarea> 
    <input id="question" type="submit" value="submit"> 
</form> 

爲什麼我不能成功發佈請求與此jQuery代碼?

$(function(){ 
    $('input').live('click', function(){ 
     if ($(this).attr('id') == 'yes'){ 
      var url = 'www.example.com/add_yes/' 
     } if ($(this).attr('id') == 'no'){ 
      var url = 'www.example.com/add_no/' 
     } else { 
      var url = 'www.example.com/add_question/'} 

    var form = $('.' + $(this).attr('id')) 
    var textarea = form.$('texarea[name="content"]').text().serialize() 

    $.ajax({ 
    type: 'POST', 
    url: url, 
    data: textarea, 
    success: succes,   
    dataType: 'json' 
    })})}) 

這裏是這段代碼的jsfiddle http://jsfiddle.net/

回答

1

提供一個獨特的類來所有我使用類文本面積= '內容'

 <form method="post"> 
      <textarea id="id_content" rows="10" cols="40" class="content" name="content"></textarea> 
      <input id="no" type="submit" value="submit"> 
     </form> 
     <form method="post"> 
      <textarea id="id_content" rows="10" cols="40" class="content" name="content"></textarea> 
      <input id="question" type="submit" value="submit"> 
     </form>   

然後使用這jquery代碼,這將解決你的問題

$(function(){   
      $('input').live('click', function(){ 
       if ($(this).attr('id') == 'yes'){ 
        var url = 'www.example.com/add_yes/' 
       } if ($(this).attr('id') == 'no'){ 
        var url = 'www.example.com/add_no/' 
       } else { 
        var url = 'www.example.com/add_question/'} 

      var textarea = $(this).parent().find(".content").val(); 

       $.ajax({ 
       type: 'POST', 
       url: url, 
       data: textarea, 
       success: succes,   
       dataType: 'json' 
       }); 
     }); 
    }); 
+0

抱歉回答這麼晚,但我發現更多的問題,我需要解決。這是有益的,你的答案。 – krzyhub

1

替換:

var textarea = form.$('texarea[name="content"]').text().serialize() 

有:

var textarea = form.find('texarea[name="content"]').text() 
1

有許多與你的HTML /代碼的問題。

1)該行var form = $('.' + $(this).attr('id'))正在頁面上尋找一個類名與點擊的輸入按鈕的id匹配的元素。當你有類無元素.no.yes.question什麼都不會被發現

2)下一行var textarea = form.$('texarea[name="content"]')...使得試圖以不正確的方式使用該元素的錯誤。我懷疑你真正打算做的是$('texarea[name="content"]',form)...form.find('texarea[name="content"]')這兩者都會在上面發現的形式中找到textarea。

3)textarea的是你的選擇拼寫錯誤的texarea

+0

sor因爲回答這麼晚,但我發現更多的問題,我需要解決 – krzyhub