jQuery MiniUI

标题: Combobox下拉的问题 [打印本页]

作者: nbakill2    时间: 2013-3-27 11:04:05     标题: Combobox下拉的问题

如果在下拉框没有关闭的情况下直接点击  提交按钮
如下图
[attach]1496[/attach]

就会报错,如下图
[attach]1497[/attach]

如果手动关闭了下拉列表,再如点提交按钮就不会报错了。

这个如何解决?



作者: factory    时间: 2013-3-27 15:21:51

你的按钮做了什么操作?只是放个按钮获取选择的数据,我们测试了,没有报错
作者: nbakill2    时间: 2013-3-27 15:33:26

factory 发表于 2013-3-27 15:21
你的按钮做了什么操作?只是放个按钮获取选择的数据,我们测试了,没有报错 ...

ajax  post 操作。

完整代码。。

$("#btnDBOK").click(function () {

                form.validate();
                if (form.isValid() == false) {
                    return;
                }
                var data = form.getData(true,false);
                GolParams = JSON.stringify(data);
                winDB.hide();
                loading = mini.loading("Loading...", "Info");
                if (Export) {
                    $.post("ReportCenter.ashx", { type: "PreviewExport", ReportID: ReportID, Params: GolParams }, function (res) {
                        res = eval("(" + res + ")");
                        if (res.res == "Report") {
                            window.location.href = "../FileDownload.ashx?FileName=" + res.msg + "";
                        }
                        mini.hideMessageBox(loading);
                    });
                } else {
                    $.post("ReportCenter.ashx", { type: "RunReport", ReportID: ReportID, Params: GolParams }, function (res) {
                        res = eval("(" + res + ")");
                        if (res.res == "false") {
                            mini.showMessageBox({ title: 'Tip', message: res.msg, buttons: ["ok"], iconCls: 'mini-messagebox-info' });
                        }
                        if (res.res == "empty") {
                            mini.showMessageBox({ title: 'Tip', message: '<%=LanguageManager.GetString("CurrSearchNoData")%>', buttons: ["ok"], iconCls: 'mini-messagebox-info' });
                    } else {
                        ShowRes(res.cols, res.datas);
                    }
                        mini.hideMessageBox(loading);
                    });
                }
            });
作者: factory    时间: 2013-3-27 16:20:16

nbakill2 发表于 2013-3-27 15:33
ajax  post 操作。

完整代码。。

我们测试了,没有问题啊
http://www.miniui.com/demo/#src=datagrid/datagrid.html
基于这个demo的编辑弹出面板改的,里面也是个表单,我们把国家的下拉换成多选的下来,然后在不隐藏下拉框的情况下,点击确定保存,没有报错
作者: nbakill2    时间: 2013-3-27 16:42:12

factory 发表于 2013-3-27 16:20
我们测试了,没有问题啊
http://www.miniui.com/demo/#src=datagrid/datagrid.html
基于这个demo的编辑弹 ...

你这个国家下拉是单选的,我那个是多选的,你不信测试一下多选的,用我的代码会报错。

请帮忙看下是什么问题。
作者: factory    时间: 2013-3-27 18:34:32

nbakill2 发表于 2013-3-27 16:42
你这个国家下拉是单选的,我那个是多选的,你不信测试一下多选的,用我的代码会报错。

请帮忙看下是什么 ...

我刚才测试的就是多选,我把单选的国家换成了多选,没有出现问题
你的这个按钮如果不跟后台交互有没有问题? 如果可以重现问题的话,你把问题做成一个可以单独运行的页面,打包上传上来。我们看下
作者: nbakill2    时间: 2013-3-28 08:17:21

factory 发表于 2013-3-27 18:34
我刚才测试的就是多选,我把单选的国家换成了多选,没有出现问题
你的这个按钮如果不跟后台交互有没有问 ...

经过我一步一步return  测试到
var data = form.getData();
                GolParams = JSON.stringify(data);
                winDB.hide();
最后一句  winDB.hide();

这个winDB就是 这个报错的下拉控件所在的div中。  点击提交按钮之后,我手动写代码隐藏了这个DIV窗口。

winDB的HTML代码原型。
<div id="winDB" class="mini-window" title="DataBase" style="width: 400px; height: auto;" showfooter="true" showclosebutton="true">
        <table id="tabDB">
        </table>
        <input type="button" id="btnDBOK" value="<%=LanguageManager.GetString("Submit") %>" />
    </div>
作者: factory    时间: 2013-3-28 09:32:13

nbakill2 发表于 2013-3-28 08:17
经过我一步一步return  测试到
var data = form.getData();
                GolParams = JSON.stringif ...

等ajax交互成功再关闭
作者: nbakill2    时间: 2013-3-29 08:50:53

factory 发表于 2013-3-28 09:32
等ajax交互成功再关闭

试了一下,好像不行。。无奈了,我现在不能自动关闭了,就只能用户手动关闭了。
作者: factory    时间: 2013-3-29 09:17:55

nbakill2 发表于 2013-3-29 08:50
试了一下,好像不行。。无奈了,我现在不能自动关闭了,就只能用户手动关闭了。 ...

你看我们的那个demo嘛,关闭窗口就是在交互成功之后关闭的。应该是你自己哪里写错了
作者: nbakill2    时间: 2013-3-29 09:55:42

factory 发表于 2013-3-29 09:17
你看我们的那个demo嘛,关闭窗口就是在交互成功之后关闭的。应该是你自己哪里写错了 ...

好吧,我试一下。




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