我是asp.net mvc的新手, 在研究这个时,我使用了非常基本的asp.net mvc之类的东西,比如beginform等。
我在本轮使用了很多jquery代码进行客户端验证,ajax数据检索和其他gui工作。
我使用了html输入按钮等组合以及asp.net mvc类型的控件。 我注意到的是,无论何时我点击一个按钮控件,它有时与jquery oclick事件相关联,当出现javascript错误时,页面将继续并提交。
为什么会发生这种情况,我在这里缺少什么?
我对愚蠢的问题不好 谢谢
在四处寻找之后,我想我可能已经找到了原因...... 可能是因为我把一些jquery事件处理程序放在另一个函数中并且没有返回false?
function eventHandling() {
//initialize controls
$(".dobPicker").datepicker({
changeMonth: true,
changeYear: true,
yearRange: '-100:+0'
});
$("a#hrefCountry").fancybox({
'titlePosition': 'inside',
'width': '75%',
'height': '75%'
});
//Event handlers part
$("#imgbtnClear").click(function() {
clearForm("#frmProductRegistration");
return false; // like this guy weren't there initially <-- ??
});
如果这是根本原因,为什么? 小心分享:)
答案 0 :(得分:2)
它似乎在这里,当你触发imgbtnClear,并且从你说的话,ClearForm失败,然后它的返回,没有错误,所以输入按钮,你放置清楚,提交表单!,因为< strong>永远不会得到回报。
也许你这样做......
$("#imgbtnClear").click(function() {
try{
clearForm("#frmProductRegistration");
}catch(e){}
return false; // like this guy weren't there initially <-- ??
});
答案 1 :(得分:0)
如果在clearForm()函数中发生javascript异常,则执行将暂停,并且您的脚本将永远不会“返回false”,这是防止表单发布所必需的。
为确保您的脚本始终“返回false”,您可以将clearForm()函数包装在try / finally块中:
try {
clearForm("#frmProductRegistration");
}
catch(e){} //so it works in IE
finally {
return false;
}
答案 2 :(得分:0)
只有当你从附加到onclick事件的函数返回false时才会提交表单,但是你没有因为异常而返回,所以无论如何它都会被提交。
你回来了什么?我猜这不确定,但我不确定。您可以使用firebug来调试它。