很多时候需要使用onClientClick进行前端脚本的校验。然而无论怎么写就是无法阻止服务端事件的执行。造成这个现象的原因大概有二个
1.js脚本出现问题
function chk(){
//...有问题的脚本
//遇到有问题脚本,下面的代码不再执行
return;
}
2.是我遇到的一个问题
function chk(){
$("input[type='text']").each(function(){
if($(this).val()==""){
return;
}
});
}
像这样的代码服务器端的事件可能会执行,可能会不执行
正确的做法是在循环中进行判断,然后在循环之外进行校验
function chk(){
var gl=false;
$("input[type='text']").each(function(){
if($(this).val()==""){
gl=true;
}
});
if(gl){
//...
return;
}
}