2014-04-10 44 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>