2014-05-16 64 views
0

工作,我有我的網站,我有N + 1形式的網頁(n爲圖像的網站上的數字)的jQuery/AJAX提交表單不多種形式+情態動詞不打烊

我有這一塊JavaScript代碼提交表單,而無需用戶直接seing它:

$('#commentform').on('submit', function(){ 
     $.post($(this).attr('action'), $(this).serialize(), function(response){ 
      var imgid = $(this).find("input[name='imageid']").val(); 
      $('#comment-'+imgid).modal('hide'); 
     },'json'); 
     return false; 
    }); 

該代碼將提交表單的模式像這樣的:

<div id='comment-<?php echo $image->id; ?>' class='modal hide fade' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'> 
    <div class='modal-header'> 
     <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>×</button> 
     <h3 id='myModalLabel'>Tilf&oslash;j kommentar til billede <?php echo $orig_name; ?></h3> 
    </div> 
    <form action="<?php echo base_url(); ?>order/do_updateComment/<?php echo $image->id; ?>" method="POST" id="commentform"> 
     <div class='modal-body'> 
      <textarea name="comment" rows="3" class="span6" placeholder="Skriv din kommentar her..."><?php echo $image->comment; ?></textarea> 
      <input type="hidden" name="imageid" value="<?php echo $image->id; ?>" /> 
     </div> 
     <div class='modal-footer'> 
      <button class='btn' data-dismiss='modal' aria-hidden='true'>Luk</button> 
      <input type="submit" name="submit" class='btn btn-primary' value="Gem kommentar" /> 
     </div> 
    </form> 
</div> 

這完美的作品爲首頁在頁面上的表格 - 其他所有提交的方式都不正確(重定向到提交頁面)

我在這裏丟失了什麼?我懷疑它是因爲在所有表格上使用了id="commentform",但是如何才能做到這一點?我在網站上獲得了一份需要以正常方式提交的表單。

同樣在一個側面說明,我想一旦提交完成後,關閉模式,這應該與這行代碼來完成:

var imgid = $(this).find("input[name='imageid']").val(); 
$('#comment-'+imgid).modal('hide'); 

的JavaScript內(完全是在頂部問題)

然而,這並不工作,要麼。該模式一直開..

我正在上引導2.X整個事情用jQuery 1.9.0

回答

1

當您在回調中時,對$(this)的引用將被刪除。保存該帖子以外的參考,它應該工作。

+0

絕對正確。謝謝! –

1

我懷疑這是因爲在所有的形式

正確使用ID =「commentform」的,ID必須是唯一的。使用類是選擇多個相似元素的常用方法。

+0

好的,第一個問題解決了..現在我只需要弄清楚爲什麼模塊不會關閉? –

+0

確認你有正確的'imgid'。 – Halcyon

+0

插入'console.log(img)'不會返回任何東西,但'console.log(「DEBUG:」)'''''''''''''''''''''''''''''''''''服務器是否必須向ajax查詢返回特殊的內容才能繼續執行js? –