本帖最后由 a4562834 于 2013-05-13 15:55:04 编辑

解决方案 »

  1.   

    我的验证规则是:
    <input class="easyui-validatebox" type="text" id="inputNameUp" name="Name" data-options="required:true,validType:'length[1,32]'" />
    其他地方没有做验证,难道赋值之后还要用js方式来验证?
      

  2.   

    data-options="required:true,validType:'length[1,32]'"
    这个规则你的值是完全符合的。我猜测应该是没有再次触发验证规则造成的。你不防这样做一下:页面执行完后,让输入框执行一下离开焦点的动作,触发验证:
        $(function(){
            $("#inputNameUp").blur();
        });
    而第一个输入框它可能是自动触发了,从第二个起就没法自动触发了。
      

  3.   


    其实我是刚接触easyui没多久,我是觉得要另外写js会很麻烦,因为每个页面都要写,我是想找有没有一种方法通过修改样式表或者其他某个地方一个属性就能解决问题的,如果要另外写js的话,我自己的解决方案是去掉class先将文本赋值,然后再用js把它绑定为easyui的控件。
      

  4.   

    你要从本质上了解问题所在先。
    你这个是js弹窗,而且我猜想是页面加载进来时就已经存在的,输入框也是事先渲染好的。你点每个编辑按钮应该弹出都是共同的这个窗口,对不?
    所以你点其中一个“编辑”按钮时,它弹出来,正常情况下它是没有触发验证,也就不会出现什么样式与提示,而你赋值是直接使用js(ajax或读取val)直接赋值,而这个过程也不会触发验证规则。问题来了:当你弹出窗口删除框内的值后(已经提示错误了),你然后点取消后或者直接点别的编辑按钮,那么就算有值它也还是会提示错误,原因就是没有再次触发验证,所以在你赋值后直接让输入框触发一下事件$("#inputNameUp").val('SD').focus().blur()就完事了,你非要干掉class又再绑成easyui的控件再渲染,那我们也没意见!
      

  5.   

    赋值过后再让他验证一次:
    $("#xxx").validatebox('validate');
      

  6.   

     $('#divForm').validatebox({   
                                    required:false
                                    });
      

  7.   


    这个是挺好用的。但是#7 的问题也值得关注呢。 已经渲染了,再次打开的话验证状态也还在,又要一个一个去removeClass...
      

  8.   


    好用。但是验证过的,再次打开tip还在,需要removeClass...
      

  9.   

    你是先open dialog然后再赋值,你需要在重新渲染一次easyui  $.parser.parse('#dlg');