遇到过几次表单提交前做验证的需求,在这里整理一下:
web开发前端的话表单验证非常常见,当存在<input type='submit' name=""></> 的时候不论你把事件注册到click还是注册到form的submit上在拦截提交请求后无法中断form的提交;可以用<input type='button' name=''></> 来替换<input type='submit' name=""></> 在JS验证后用document.form.submit()完成提交
完整代码如下(调用的yahooYUI):
<form name="templateForm" method="POST">
<input type="hidden" name="event_submit_do_add" value=""/>
<input type="hidden" name="event_submit_do_update" value=""/>
------------------------
#if("$templateId"=="0")
<input type="button" name="J_Add" id="J_Add" class="J_Submit" value="保存" style="margin:0 10px;padding:0 5px;"/>
#else
<input type="button" name="J_Update" id="J_Update" class="J_Submit" value="修改" style="margin:0 10px;padding:0 5px;"/>
#end
</form>
<script language='text/javascript'>
var Y = YAHOO.util, D = Y.Dom, E = Y.Event;
E.on("J_Add","click",function(evt){
if(“验证条件")
{
alter("提示内容");
return;
}
document.templateForm.event_submit_do_add.value="submit";
document.templateForm.submit();
});
E.on("J_Update","click",function(evt){
if(“验证条件")
{
alter("提示内容");
return;
}
document.templateForm.event_submit_do_update.value="submit";
document.templateForm.submit();
});
</script>