$("#myform").validate({
  groups: {
    username: "fname lname"
  },
  errorPlacement: function(error, element) {
    if (element.attr("name") == "fname" || element.attr("name") == "lname" ) {
      error.insertAfter("#lastname");
    } else {
      error.insertAfter(element);
    }
  },
   wrapper: "li" //这里想加个判断,像上面一样,比如:如果当前元素为radio类型,设定wrapper为li,否则不设定wrapper
});见注释,想用个函数,wrapper:function() ,这样好像又不支持,请教各位,应该怎么写?谢谢了!jquery

解决方案 »

  1.   

    在errorPlacement里面判断一下,如果是radio就给error包一个li再放到页面
      

  2.   

    谢谢!可是我这样写怎么不行呢?
    error.wrap("<td></td>").appendTo(element.parent().parent());
      

  3.   

    element.parent().parent().after($('<li>').append(error))
    具体情况你得具体处理,原理就是这样
    由于errorPlacement只会执行一次,所以应该无问题,不过最好还是不要在这儿给信息包上面东西,你完全可以在页面html中把容器先写好放那儿
      

  4.   

     $("#id").attr('type') == 'radio' ? "li" : "", id为radio的id
      

  5.   

    按照三楼的写法没问题了。。我就是不明白以下两种写法,为什么第一种不行,第二种就没问题呢?都是外面套个td啊:
    error.wrap("<td></td>")
    $("<td>").append(error)