2014-04-10 95 views
13

我想在使用jQuery提交表單之前添加確認。 我在另一個堆棧溢出問題form confirm before submit中找到了一個很好的例子,但是我無法讓它正常工作。使用jQuery提交表單之前的確認

的jQuery:

$(function() { 
    $('form#delete').submit(function() { 
     var c = confirm("Click OK to continue?"); 
     return c; 
    }); 
}); 

模板:

<form id="delete" action="{% url 'item_delete' item.id %}" method="post">{% csrf_token %} 
    <input class="floatright" type="submit" value="Delete" /> 
</form> 

我們怎樣才能做到這一點?

回答

15

您提交表單,並檢查確認後,你需要逆

JS:

$(function() { 
    $("#delete_button").click(function(){ 
     if (confirm("Click OK to continue?")){ 
     $('form#delete').submit(); 
     } 
    }); 
}); 

HTML:

<form id="delete" action="{% url 'item_delete' item.id %}" method="post">{% csrf_token %} 
    <input id="delete_button" class="floatright" type="button" value="Delete" /> 
</form> 
+0

現在的工作完美,感謝 –

+0

我接着說:event.preventDefault();'在「其他」條件 – campeterson

+0

這將** **不工作,如果你提交表單以任何方式除了點擊此按鈕(例如,按下輸入另一個輸入)。因爲這個,@ user3311206的答案更好。 – Ben

0

確保你把你的代碼在$(document).ready()中,如下所示:

$(document).ready(function() { 
    $('form#delete').submit(function() { 
     var c = confirm("Click OK to continue?"); 
     return c; 
    }); 
}); 
12
$('#delete').submit(function(event){ 
    if(!confirm("some text")){ 
     event.preventDefault(); 
     } 
    }); 
0
$(function() { 
     $('form#delete').click(function(e) { 
     e.preventDefault(); 
     var c = confirm("Click OK to continue?"); 
     if(c){ 
      $('form#delete').submit(); 
      } 
     }); 
    }); 

    <form id="delete" action="www.google.com"> 
     <input id="deletesubmit" type="submit" value="Delete" /> 
    </form>