jQuery MiniUI

 找回密码
 立即注册
查看: 3691|回复: 3
打印 上一主题 下一主题

onvalidation与vtype好像不能并存 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2013-4-16 21:13:34 |只看该作者 |倒序浏览
我在textbox里加了vtype和onvalidation,我希望达到的目的是先验证vtype再验证onvalidation。
我按照DEMO的写法如下操作(http://miniui.com/demo/index.html#src=form/rules.html):
<input class="mini-textbox" name="pay_amount" vtype="float" required="true" style="width:100%;"/>

if (e.isValid) {  // 我的理解是系统先已经进行了vtype的验证,不然的话这里判断e.isValid似乎就没有什么意义!
                                var form = new mini.Form("#editform");
                                var operType = form.getField("oper_type").getValue();
                                if (operType == "B" && (e.value == "" || parseInt(e.value) < 0)) {
                                        e.errorText = "进货操作此处数值必须大于或等于0";
                            e.isValid = false;
                                }
                                if (operType == "T" && (e.value == "" || parseInt(e.value) > 0)) {
                                        e.errorText = "退货操作此处数值必须小于或等于0";
                            e.isValid = false;
                                }
                        }


经调试发现e.isValid一直保持为true,如果我在文本框输入:-f20,首先vtype的验证就通不过。

如果miniui的验证方法支持系统和vtype和自定义方法混合验证,是不是我的方法有不对的地方?

Rank: 9Rank: 9Rank: 9

沙发
发表于 2013-4-16 21:19:40 |只看该作者
支持混合验证的。
你需要监听处理onvalidation事件

Rank: 3Rank: 3

板凳
发表于 2013-4-17 15:14:16 |只看该作者
niko 发表于 2013-4-16 21:19
支持混合验证的。
你需要监听处理onvalidation事件

我加了的,上面是我写错了,事件处理代码就是我上面写出来的。

Rank: 9Rank: 9Rank: 9

地板
发表于 2013-4-17 15:44:35 |只看该作者
  1. <div id="form1">
  2.     <input name="username" onvalidation="onUserNameValidation" vtype="email" class="mini-textbox" />
  3.     <br />
  4.     <input value="Login" type="button" onclick="submitForm()" />
  5. </div>
  6. <script type="text/javascript">
  7.     mini.parse();

  8.     function submitForm() {
  9.             
  10.         var form = new mini.Form("#form1");

  11.         form.validate();
  12.         if (form.isValid() == false) return;

  13.         alert("验证成功");
  14.     }

  15.     function onUserNameValidation(e) {
  16.         if (e.isValid) {
  17.             if (e.value.indexOf("@abc.com") == -1) {
  18.                 e.isValid = false;
  19.                 e.errorText = "必须是@abc.com";
  20.             }
  21.         }
  22.     }
  23. </script>
复制代码
参考如上代码示例,vtype和onvalidation是可以共存验证的

Archiver|普加软件

GMT+8, 2024-11-30 20:18 , Processed in 1.043608 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部