jQuery MiniUI

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

非常奇怪的问题, 多个Tab中的控件setVisible无效 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2017-11-27 19:41:52 |只看该作者 |倒序浏览
本帖最后由 hks2002 于 2017-11-27 19:49 编辑


先附上代码:
<form id="searchForm4294967295">
<!-- style="display:inline-block;" in one line-->

<input type="checkbox"/>高级查询
<table>
<tr>
<td>代码:</td>
<td><input name="sqlOp_todoListCd" data="sqlOpData" value="1" class="mini-combobox" style="width:200px;display:none"/></td>
<td><input name="todoListCd" class="mini-textbox"/></td>
</tr>
<tr>
<td>名称(中文):</td>
<td><input name="sqlOp_todoListNameZh" data="sqlOpData" value="1" class="mini-combobox" style="width:200px;display:none" /></td>
<td><input name="todoListNameZh" class="mini-textbox" /></td>
</tr>
<tr>
<td>名称(英文):</td>
<td><input name="sqlOp_todoListNameEn" data="sqlOpData" value="1" class="mini-combobox" style="width:200px;display:none"/></td>
<td><input name="todoListNameEn" class="mini-textbox" /></td>
</tr>
<tr>
<td>提示:</td>
<td><input name="sqlOp_todoListTooltip" data="sqlOpData" value="1" class="mini-combobox" style="width:200px;display:none"/></td>
<td><input name="todoListTooltip" class="mini-textbox" /></td>
</tr>
<tr>
<td>描述:</td>
<td><input name="sqlOp_todoListNameDesc" data="sqlOpData" value="1" class="mini-combobox" style="width:200px;display:none"/></td>
<td><input name="todoListNameDesc" class="mini-textbox" /></td>
</tr>
</table>
</form>



var sqlOpData=[{ text:'',id:0},
{ text:'<%== UI("SQLEQUAL") %>',id:1},
{ text:'<%== UI("SQLNOTEQUAL") %>',id:2},
{ text:'<%== UI("SQLLESSTHAN") %>',id:3},
{ text:'<%== UI("SQLGREATERTHAN") %>',id:4},
{ text:'<%== UI("SQLLESSEQUAL") %>',id:5},
{ text:'<%== UI("SQLGREATEREQUAL") %>',id:6},
{ text:'<%== UI("SQLISNULL") %>',id:7},
{ text:'<%== UI("SQLISEMPTY") %>',id:8},
{ text:'<%== UI("SQLISNOTNULL") %>',id:9},
{ text:'<%== UI("SQLISNOTEMPTY") %>',id:10},
{ text:'<%== UI("SQLLIKE") %>',id:11},
{ text:'<%== UI("SQLNOTLIKE") %>',id:12},
{ text:'<%== UI("SQLLIKEESCAPE") %>',id:13},
{ text:'<%== UI("SQLNOTLIKEESCAPE") %>',id:14},
{ text:'<%== UI("SQLILIKE") %>',id:15},
{ text:'<%== UI("SQLNOTILIKE") %>',id:16},
{ text:'<%== UI("SQLILIKEESCAPE") %>',id:17},
{ text:'<%== UI("SQLNOTILIKEESCAPE") %>',id:18},
{ text:'<%== UI("SQLIN") %>',id:19},
{ text:'<%== UI("SQLNOTIN") %>',id:20},
{ text:'<%== UI("SQLBETWEEN") %>',id:21},
{ text:'<%== UI("SQLNOTBETWEEN") %>',id:22}
];


function toggleAdvanceSearch(ck, formId) {
    var form = new mini.Form("#" + formId);
    var controls=form.getFields();
   
    for(var i=0,l=controls.length;i<l;i++){
        var controlName=controls.getName();
        if (controlName.substr(0,6)=='sqlOp_'){
            if (ck.checked) {
                controls.setVisible(true);
                alert(controls.visible);
            }else{
                controls.setVisible(false);
                controls.setValue(1);
            }            
        }
    }
}

同样的几个Tab页面,  第一个Tab和最后一个Tab就可以正常显示和隐藏,  中间的Tab就不会切换显示.
搞了一天了, 一直查找代码原因, 当时调试的是第二个Tab, 各种排除, 精简代码, 都无效, 意外发现第一个Tab和最后一个Tab功能正常. 然后直接调换第二个Tab和第一个Tab的位置, 原来正常的第一个Tab就不正常了.

现在是彻底不知道怎么搞了,
在第二个Tab的时候, controls.setVisible(true); alert(controls.visible); 显示是修改了visible了, 但html中的display:none取一直不改变.
说明一下, Tab中是直接插入的html代码, 没有使用url,没有frame.
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 3Rank: 3

沙发
发表于 2017-11-27 20:17:32 |只看该作者
绝望之后,找到原因了, 是formId重复导致的.

Archiver|普加软件

GMT+8, 2025-7-16 09:19 , Processed in 1.037016 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部