有用easyui validatebox验证表单的吗?用这个如何验证radio,checkbox啊

phuson 2013-09-06 10:37:10
如题,这个validatebox貌似不太完善啊,很多类型都不能验证,默认只提供几种的验证,很多常见的都没有,自己写又怕写不好。
有没有高手扩展过的?
...全文
1167 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
phuson 2013-09-06
  • 打赏
  • 举报
回复
validator: function(value,param) 例子都是type=text的, 对于radio 或checkbox来说,value是指什么?
phuson 2013-09-06
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
自己扩展就好了吧,有什么写不好的,只要有js基础就没什么写不好的,要不还提供扩展功能有什么用 官方的demo
$.extend($.fn.validatebox.defaults.rules, {
equals: {
  validator: function(value,param){
      return value == $(param[0]).val();
  },
  message: 'Field do not match.'
}
});
    <input id="pwd" name="pwd" type="password" class="easyui-validatebox" data-options="required:true">
    <input id="rpwd" name="rpwd" type="password" class="easyui-validatebox"
    required="required" validType="equals['#pwd']">
js基础一般,这个例子只看得懂,但却写不来。能否举一个 radio必选,checkbox选1-3项的例子。。
Go 旅城通票 2013-09-06
  • 打赏
  • 举报
回复
自己扩展就好了吧,有什么写不好的,只要有js基础就没什么写不好的,要不还提供扩展功能有什么用 官方的demo
$.extend($.fn.validatebox.defaults.rules, {
equals: {
  validator: function(value,param){
      return value == $(param[0]).val();
  },
  message: 'Field do not match.'
}
});
    <input id="pwd" name="pwd" type="password" class="easyui-validatebox" data-options="required:true">
    <input id="rpwd" name="rpwd" type="password" class="easyui-validatebox"
    required="required" validType="equals['#pwd']">
phuson 2013-09-06
  • 打赏
  • 举报
回复
不过对radio和checkbox的支持不是很友好,验证失败的样式显示不出来,需要移动到验证控件上才会显示错误提示,而不同text再右边有显示,所以你得需要另外增加代码高亮错误 ========================= 看来还是用另一个验证插件方便 jquery validation
liuxibei1987 2013-09-06
  • 打赏
  • 举报
回复
作者提供了扩展功能的
Go 旅城通票 2013-09-06
  • 打赏
  • 举报
回复
value是验证的控件的值,param为调用验证规则时传递的参数,就是validType函数名后传递的值,为数组格式的,没有参数可以不用在验证函数名后写[参数]

不过对radio和checkbox的支持不是很友好,验证失败的样式显示不出来,需要移动到验证控件上才会显示错误提示,而不同text再右边有显示,所以你得需要另外增加代码高亮错误

    <style>
.validatebox-invalid{border:solid 1px red;}
</style>
<script>
$.extend($.fn.validatebox.defaults.rules, {
radio: {
validator: function (value, param) {
var frm = param[0], groupname = param[1], ok = false;
$('input[name="' + groupname + '"]', document[frm]).each(function () { //查找表单中所有此名称的radio
if (this.checked) { ok = true; return false; }
});

return ok
},
message: '需要选择一项!'
},
checkbox: {
validator: function (value, param) {
var frm = param[0], groupname = param[1], checkNum = 0;
$('input[name="' + groupname + '"]', document[frm]).each(function () { //查找表单中所有此名称的checkbox
if (this.checked) checkNum++;
});

return checkNum > 0 && checkNum < 4;
},
message: '选择1~3项!'
}
});
function check(f) {
var o = $(f.radio1[0]);
if (!o.validatebox('isValid')) o.parent().addClass('validatebox-invalid');
else o.parent().removeClass('validatebox-invalid');

o = $(f.cb1[0]);
if (!o.validatebox('isValid')) o.parent().addClass('validatebox-invalid');
else o.parent().removeClass('validatebox-invalid');
return false
}
</script>
</head>
<body>
<form onsubmit="return check(this)" name="frm">
<div>
<input type="radio" name="radio1" class="easyui-validatebox" value="1" validType="radio['frm','radio1']"/>radio1
<input type="radio" name="radio1" class="easyui-validatebox" value="2"/>radio2
<input type="radio" name="radio1" class="easyui-validatebox" value="3" />radio3</div>
<div><input type="checkbox" name="cb1" class="easyui-validatebox" value="1" validType="checkbox['frm','cb1']"/>checkbox1
<input type="checkbox" name="cb1" class="easyui-validatebox" value="2"/>checkbox2
<input type="checkbox" name="cb1" class="easyui-validatebox" value="3" />checkbox3
<input type="checkbox" name="cb1" class="easyui-validatebox" value="4" />checkbox4</div>
<input type="submit" value="提交"/>
</form>

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧