jQuery MiniUI

标题: 下拉改变事件隐藏相关输入框,存在validate缓存问题? [打印本页]

作者: miniui使用者    时间: 2016-12-21 10:09:18     标题: 下拉改变事件隐藏相关输入框,存在validate缓存问题?

请教管理员等各路大神,在下拉框值改变事件后,设置一些input 为display:none 了 但是 验证还是上一次的验证,如何清除这种缓存,谢谢了

作者: dforce    时间: 2016-12-21 13:59:28

隐藏控件是不验证的。
你这个问题请提供具体的页面说明
作者: miniui使用者    时间: 2016-12-21 14:25:31

dforce 发表于 2016-12-21 13:59
隐藏控件是不验证的。
你这个问题请提供具体的页面说明

我是说下拉框切换之后  隐藏的是不验证了 但是切换两次就验证了
作者: miniui使用者    时间: 2016-12-21 14:26:05

dforce 发表于 2016-12-21 13:59
隐藏控件是不验证的。
你这个问题请提供具体的页面说明

来回切换两次就验证了
作者: miniui使用者    时间: 2016-12-21 14:27:05

miniui使用者 发表于 2016-12-21 14:26
来回切换两次就验证了

像是用的上一次的验证缓存还是哪的bug ,我找源码不太好找方法
作者: dforce    时间: 2016-12-21 14:38:29

miniui使用者 发表于 2016-12-21 14:27
像是用的上一次的验证缓存还是哪的bug ,我找源码不太好找方法

提供一个简单的html重现你说的这个问题。回复高级模式可以上传文件
作者: miniui使用者    时间: 2016-12-21 14:49:38

dforce 发表于 2016-12-21 14:38
提供一个简单的html重现你说的这个问题。回复高级模式可以上传文件

[attach]8597[/attach][attach]8598[/attach]

作者: miniui使用者    时间: 2016-12-21 14:50:41

miniui使用者 发表于 2016-12-21 14:49

看看这样大概能看清楚吧
作者: miniui使用者    时间: 2016-12-21 15:06:29

miniui使用者 发表于 2016-12-21 14:49

是有些问题吧
作者: dforce    时间: 2016-12-21 15:39:08

miniui使用者 发表于 2016-12-21 15:06
是有些问题吧

请用模拟数据来模拟你的操作和重现你的问题,
未发现验证的相关代码。你可以提交前主动调用一个form.validate()来把这个表单整体验证一下
作者: miniui使用者    时间: 2016-12-21 15:46:11

dforce 发表于 2016-12-21 15:39
请用模拟数据来模拟你的操作和重现你的问题,
未发现验证的相关代码。你可以提交前主动调用一个form.vali ...

我得全部提供给你吗,提交的时候验证了
作者: miniui使用者    时间: 2016-12-21 15:48:54

dforce 发表于 2016-12-21 15:39
请用模拟数据来模拟你的操作和重现你的问题,
未发现验证的相关代码。你可以提交前主动调用一个form.vali ...

[attach]8600[/attach][attach]8601[/attach]

这次全部传给你了,谢了帮看一下 看来不全部把代码给你解决不了问题.....

作者: dforce    时间: 2016-12-21 17:21:34

miniui使用者 发表于 2016-12-21 15:48
这次全部传给你了,谢了帮看一下 看来不全部把代码给你解决不了问题.....
...

[attach]8604[/attach]
按你的代码处理的,没发现问题,第一次什么都不填,保存
然后切换combobox选项,全部填写,保存。


作者: miniui使用者    时间: 2016-12-21 17:46:15

dforce 发表于 2016-12-21 17:21
按你的代码处理的,没发现问题,第一次什么都不填,保存
然后切换combobox选项,全部填写,保存。

隐藏掉的部分会跳出验证的,比如说我隐藏掉这个组织机构代码输入框, 它会弹出组织机构代码不能为空的
作者: miniui使用者    时间: 2016-12-21 17:53:01

dforce 发表于 2016-12-21 17:21
按你的代码处理的,没发现问题,第一次什么都不填,保存
然后切换combobox选项,全部填写,保存。

你得按照我那个弹出具体的input框为空提示,我里面的拼代码的,
if (!me.alreadyEmployedForm.isValid()) {
                var errorFields = me.alreadyEmployedForm.getErrors();
                var s = [];
                $.each(errorFields, function (i, f) {
                    s.push(f.label + "<span class='mini-required-span'>" + f.getErrorText() + "</span>");
                });
                mini.alert(s.join('<br/>'), "提示");
                return;
            }

比如说最上边的下拉框下拉到科研助理,点击保存,正常提示,此时再点击上边下拉框点击应征义务兵那里的话,此时又隐藏了一部分字段,此时再次点击保存的时候,验证还是科研助理时的验证,[attach]8608[/attach]


作者: miniui使用者    时间: 2016-12-22 08:58:16

miniui使用者 发表于 2016-12-21 17:46
隐藏掉的部分会跳出验证的,比如说我隐藏掉这个组织机构代码输入框, 它会弹出组织机构代码不能为空的 ...

您好再帮我看下 谢了
作者: felt    时间: 2016-12-22 10:15:57

miniui使用者 发表于 2016-12-22 08:58
您好再帮我看下 谢了

按我们修改的页面再修改,修改成能重现你说的问题的环境,打开发上来
作者: miniui使用者    时间: 2016-12-22 10:24:20

felt 发表于 2016-12-22 10:15
按我们修改的页面再修改,修改成能重现你说的问题的环境,打开发上来

[attach]8609[/attach]
[attach]8609[/attach]
操作:1点击就业类别下拉菜单 选择科技助理  然后点击保存  保存后会提示相应字段非空验证,点击确定


          2第一步完成后,再次点击就业类别下拉菜单 选择 就业义务兵, 点击保存,此次非空验证是上一次的科研助理的非空验证




作者: felt    时间: 2016-12-22 10:42:26

miniui使用者 发表于 2016-12-22 10:24
操作:1点击就业类别下拉菜单 选择科技助理  然后点击保存  保存后会提示相应字段非空验证,点击确定
...

因为隐藏的控件不验证了,所以隐藏的时候是不通过状态的还是保留这个状态了。
切换隐藏显示前主动处理一下,强制指定验证都通过
form.setIsValid(true);
作者: miniui使用者    时间: 2016-12-22 13:25:50

felt 发表于 2016-12-22 10:42
因为隐藏的控件不验证了,所以隐藏的时候是不通过状态的还是保留这个状态了。
切换隐藏显示前主动处理一 ...

我在隐藏显示前强制form.setIsValid(true); 但是当点击保存的时候 它是直接走验证通过了,谢谢帮处理下
作者: miniui使用者    时间: 2016-12-22 13:29:21

felt 发表于 2016-12-22 10:42
因为隐藏的控件不验证了,所以隐藏的时候是不通过状态的还是保留这个状态了。
切换隐藏显示前主动处理一 ...

能把我发的那个代码改下吗
作者: miniui使用者    时间: 2016-12-22 15:19:03

felt 发表于 2016-12-22 13:40
如这个示例

这个还是看不出来 ???
作者: felt    时间: 2016-12-22 15:29:39

miniui使用者 发表于 2016-12-22 15:19
这个还是看不出来 ???

[attach]8611[/attach]传错了,这个

  1. setEvents: function () {
  2.             var me = this;
  3.             mini.get("dictJobWantedTypeName").on("valuechanged", function (e) {
  4.                 me.alreadyEmployedForm.setIsValid(true);
  5.                 //清除缓存验证
  6.                 $("#dictJobWantedTypeName").removeData("previousValue");
复制代码



作者: miniui使用者    时间: 2016-12-22 17:07:18

felt 发表于 2016-12-22 15:29
传错了,这个

您好我也是按照您的这个这样做的 是不是版本问题 我的miniui 版本低了,我也是这么写的,这样写完 它都不提示直接通过验证
作者: felt    时间: 2016-12-22 17:08:37

miniui使用者 发表于 2016-12-22 17:07
您好我也是按照您的这个这样做的 是不是版本问题 我的miniui 版本低了,我也是这么写的,这样写完 它都不 ...

引用在线的miniui.js看看,如果在线的没问题,就是你的版本低了,需要更新了。
作者: miniui使用者    时间: 2016-12-22 17:11:38

felt 发表于 2016-12-22 17:08
引用在线的miniui.js看看,如果在线的没问题,就是你的版本低了,需要更新了。 ...

好的我试一下
作者: miniui使用者    时间: 2016-12-22 17:12:37

felt 发表于 2016-12-22 17:08
引用在线的miniui.js看看,如果在线的没问题,就是你的版本低了,需要更新了。 ...

是你给我传的这个文件里面的在线引用吗
作者: felt    时间: 2016-12-22 17:18:41

miniui使用者 发表于 2016-12-22 17:12
是你给我传的这个文件里面的在线引用吗

是的
作者: miniui使用者    时间: 2016-12-23 09:28:39

felt 发表于 2016-12-22 17:18
是的

您好,我知道是哪的问题了  验证之后的语句 获取表单数据这里 var data = me.alreadyEmployedForm.getData(true, false); 只要是这句有 就直接通过验证,就算是非空的话也通过验证,保存成功,getData如何获取表单数据?
作者: miniui使用者    时间: 2016-12-23 10:17:29

felt 发表于 2016-12-22 17:18
是的

好了没问题了 ,多谢
作者: dforce    时间: 2016-12-23 10:25:17

miniui使用者 发表于 2016-12-23 09:28
您好,我知道是哪的问题了  验证之后的语句 获取表单数据这里 var data = me.alreadyEmployedForm.getDat ...

这只是获取数据啊,对验证没有影响的,我这边测试把这代码放出来也没问题。
基于上面的例子改出重现发过来
作者: miniui使用者    时间: 2016-12-23 11:02:49

dforce 发表于 2016-12-23 10:25
这只是获取数据啊,对验证没有影响的,我这边测试把这代码放出来也没问题。
基于上面的例子改出重现发过 ...

我的代码有处有问题是我自身代码问题,谢了,没问题了




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2