Ric*_*its 70 javascript jquery
我有一个网页,我已阻止所有提交按钮的默认操作,但我想重新启用按钮上的默认提交操作我该怎么办?
我目前正在使用以下方法阻止默认操作:
$("form").bind("submit", function(e){
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
我使用以下方法成功完成了此操作:
$(document).ready(function(){
$("form:not('#press')").bind("submit", function(e){
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
但是,当单击按钮时,我可以动态执行此操作吗?
red*_*are 119
您必须取消绑定事件并重新绑定到不阻止默认的单独事件,或者在解除绑定后稍后在方法中自行调用默认事件.没有神奇的event.cancelled = false;
按照要求
$('form').submit( function(ev){
ev.preventDefault();
//later you decide you want to submit
$(this).unbind('submit').submit()
});
Run Code Online (Sandbox Code Playgroud)
小智 13
您可以使用此代码执行redsquare建议的操作:
function preventDefault(e) {
e.preventDefault();
}
$("form").bind("submit", preventDefault);
// later, now switching back
$("form#foo").unbind("submit", preventDefault);
Run Code Online (Sandbox Code Playgroud)
或者,只要允许提交,您就可以分配表单属性.像这样的东西:
function preventDefault(e) {
if (event.currentTarget.allowDefault) {
return;
}
e.preventDefault();
}
$("form").bind("submit", preventDefault);
// later, now allowing submissions on the form
$("form#foo").get(0).allowDefault = true;
Run Code Online (Sandbox Code Playgroud)
function(e){ e.preventDefault();
Run Code Online (Sandbox Code Playgroud)
和它的反面
function(e){ return true; }
Run Code Online (Sandbox Code Playgroud)
干杯!