2014-10-19 78 views
0

我試圖操縱表單提交使用jQuery提交按鈕的幾個。代碼如下所示:jQuery:如何在提交之前更改多個表單屬性

<form id="cf" action="" method="POST" target=""> 
     <button id="preview">Preview</button> 
     <button name="submit" id="submit">Save</button> 
    </form> 
    <script> 
     $("#preview").on("click",function(e) { 
      $(this).attr('name','submit'); 
      e.preventDefault();   
      $("#cf").attr({ 
        'action':'/preview/', 
        'target':'_blank' 
       }).submit(); 
     }); 
    </script> 

單擊「預覽」按鈕時,更改屬性值似乎工作,但它不提交。代碼有什麼問題?

+1

您形式的'id'應該是' 「CF」''沒有 「#cf」'。 '$(「#cf」)'中的'#'表示「通過id#後面的'#'」進行選擇。 – 2014-10-19 19:49:55

+0

您的按鈕覆蓋'form.submit',因爲它被命名爲'submit',更改按鈕的名稱,它將起作用。 – adeneo 2014-10-19 19:55:23

+0

@Paul Roub對不起,錯字。 – netizen0911 2014-10-19 19:55:34

回答

3

每個表格都附有一個提交功能,它被引用爲form.submit

當您在submit表格中指定名稱時,它也會被附加到表格中,並覆蓋原生form.submit,因此無法再使用submit功能提交表格。

重命名的按鈕比submit其他任何東西,並刪除設置名稱線submit

<form id="cf" action="" method="POST" target=""> 
    <button id="preview">Preview</button> 
    <button name="my_submit" id="my_submit">Save</button> 
</form> 
<script> 
    $("#preview").on("click",function(e) { 
     e.preventDefault();   

     $("#cf").attr({ 
       'action':'/preview/', 
       'target':'_blank' 
     }).submit(); 
    }); 
</script>