jquery验证怪异问题 有时候执行到一半就不执行了

这个函数
function checkName(){
//检查是否为空
if($("#DishCategory_Name").val()==""){
$(".DishCategory_NameTip").html("分类名称不能为空");
layer.msg('分类名称不能为空', 1, 2);
ok=0;/* 函数内全局变量 */
}

    //不为空的时候不提示消息
        if($("#DishCategory_Name").val()!==""){

            var categoryname=$('#DishCategory_Name').val(); //得到的新值

           $.get("__URL__/ajaxDishCategoryName/category/"+categoryname,function(data,status){
                  if(data==1){
                      layer.msg('分类名称不能重复', 1, 2);
                    $(".DishCategory_NameTip").html("<span class='sui-label label-danger'><i class='fa fa-ban'></i>分类名称不能重复</span>");

                     ok=0;/* 函数内全局变量 */
                  }else{
                        $(".DishCategory_NameTip").html("<span class='sui-label label-success'><i class='fa fa-check'></i>填写通过</span>");
                         ok=1;/* 函数内全局变量 */
                  }

             });    
        }

    }/* 函数结束 */

提交表单

/*提交表单**************************************************** */
$("#subm").click(function() {

                     checkName();

———————————————分割线———————————————————————
if(ok==1){
$("#formtarget").submit();
layer.msg('成功,正在写入',1,1,function(){ location.reload(); });

                     }


                 });/* 提交 */    

问题是为什么有时候执行到分割线的时候就不执行后面的代码,比如不提交了。
有时候又是正常的。大部分都是正常的。出现过一两次 执行到分割线的时候,后面就不执行了。

看网络,get的时候是否正常返回。如果get出错了,后面就不执行了。