Jquery e.preventDefault()的问题
我在使用默认设置时遇到问题。问题是,这段代码工作正常,它阻止了每次单击,我收到警报:Jquery e.preventDefault()的问题,jquery,Jquery,我在使用默认设置时遇到问题。问题是,这段代码工作正常,它阻止了每次单击,我收到警报: $("#vnesi").click(function (e) { $.post("/VnosPrijavnica/PreveriVnose", $("#kriteriji").serialize(), function (data) { if (data != "ok") alert(data);
$("#vnesi").click(function (e) {
$.post("/VnosPrijavnica/PreveriVnose", $("#kriteriji").serialize(), function (data) {
if (data != "ok")
alert(data);
});
e.preventDefault();
});
但如果数据正常或不正常,这不会发生:
$("#vnesi").click(function (e) {
$.post("/VnosPrijavnica/PreveriVnose", $("#kriteriji").serialize(), function (data) {
if (data != "ok"){
alert(data);
e.preventDefault();
}
});
});
还有一个问题。在Firefox4或任何其他浏览器中调试javascript的最佳方法是什么,但我更喜欢Firefox4
更新
谢谢你的回答。如果我想让它像在第二段代码中那样运行,我如何防止默认值?我希望e.preventDefault仅在数据!=好。用户返回false,它同时执行preventDefault和StopperProgation 你应该在外面做
$("#vnesi").click(function (e) {
$.post("/VnosPrijavnica/PreveriVnose", $("#kriteriji").serialize(), function (data) {
if (data != "ok"){
alert(data);
}
});
return false
});
至于你的另一个问题,firebug是最好的用户返回false,它同时执行preventDefault和StopperProgation 你应该在外面做
$("#vnesi").click(function (e) {
$.post("/VnosPrijavnica/PreveriVnose", $("#kriteriji").serialize(), function (data) {
if (data != "ok"){
alert(data);
}
});
return false
});
至于你的另一个问题,firebug是在异步回调中调用e.preventDefault的最佳方法。事件处理程序将在您阻止事件之前完成
基本上,您无法更改回调中的事件,因为事件已完成。您需要以不同的方式处理此问题,即在回调之外
$("#vnesi").click(function(e) {
$.post("/VnosPrijavnica/PreveriVnose", $("#kriteriji").serialize(), function(data) {
if (data != "ok") {
alert(data);
} else {
// ajax post failed
// trigger the action of the event again. (form.submit ??)
}
});
// prevent the default always
e.preventDefault();
});
用于在firefox中进行调试。使用内置工具Ctrl+Shift+J或。然后使用F12打开firebug。在异步回调中调用e.preventDefault。事件处理程序将在您阻止事件之前完成
基本上,您无法更改回调中的事件,因为事件已完成。您需要以不同的方式处理此问题,即在回调之外
$("#vnesi").click(function(e) {
$.post("/VnosPrijavnica/PreveriVnose", $("#kriteriji").serialize(), function(data) {
if (data != "ok") {
alert(data);
} else {
// ajax post failed
// trigger the action of the event again. (form.submit ??)
}
});
// prevent the default always
e.preventDefault();
});
用于在firefox中进行调试。使用内置工具Ctrl+Shift+J或。然后使用F12打开firebug。
异步调用在默认操作完成后返回。
希望这能有所帮助。用户,firebug是最好的调试工具。了解发生了什么。您是否使用PHP作为后端?也许你在这里犯了一个错误。我也认为firebug是最重要的best@kobe&用户:或者如果您使用Chrome。只需使用Chrome的开发工具即可。这两种语言都是很好的工具。对于IF语句,即使只有一行,也要始终使用大括号:-用户,firebug是最好的调试工具。了解发生了什么。您是否使用PHP作为后端?也许你在这里犯了一个错误。我也认为firebug是最重要的best@kobe&用户:或者如果您使用Chrome。只需使用Chrome的开发工具即可。这两种语言都是很好的工具。对于IF语句,即使只有一行,也要始终使用大括号:-这不是当前的问题。这不是当前的问题。它可以在另一个函数中。它只需要在一个同步函数中,也可以在另一个函数中。它只需要在同步函数中。