jQuery MiniUI

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

弹窗怎么获取combobox的值? [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2021-10-14 16:42:42 |只看该作者 |倒序浏览



<form id="form1" method="post">
    <input name="id" class="mini-hidden" />
    <div style="padding-left:11px;padding-bottom:5px;">
        <table style="table-layout:fixed;">
            <tr>
                <td style="width:80px;">员工编号:</td>
                <td style="width:150px;">
                    <input name="usernumber" class="mini-textbox" />
                </td>

                <td style="width:80px;">用户名称:</td>
                <td style="width:150px;">
                    <input name="username" class="mini-textbox" />
                </td>
            </tr>
            <tr>
                <td style="width:80px;">员工帐号:</td>
                <td style="width:150px;">
                    <input name="loginname" class="mini-textbox" />
                </td>
                <td style="width:80px;">所属部门:</td>
                <td style="width:150px;">
                    <input id="department" name="department" class="mini-combobox" url="../user/department"  textField="dname"  valueFromSelect="true"  showNullItem="false"/>
                </td>
            </tr>

        </table>
        <div style="text-align:center;padding:10px;">
            <a class="mini-button" onclick="onOk" style="width:60px;margin-right:20px;">确定</a>
            <a class="mini-button" onclick="onCancel" style="width:60px;">取消</a>
        </div>
    </div>
</form>


获取不了combobox的值怎么办?

function SaveData() {
   // console.log("department:"+department);
    var getdepartment = mini.get("department");
    var key = mini.get("department").getValue();
    console.log("key"+key);
    console.log("getdepartment"+getdepartment);


keyundefined
getdepartment[object Object]



Rank: 8Rank: 8

沙发
发表于 2021-10-14 16:48:34 |只看该作者
弹窗?你的代码没看到,如果是有跨页面,请跨页面去获取。

Rank: 2

板凳
发表于 2021-10-14 16:53:02 |只看该作者
felt 发表于 2021-10-14 16:48
弹窗?你的代码没看到,如果是有跨页面,请跨页面去获取。

在其他的页面通过弹窗显示这个页面。这个页面的下拉获取值的时候用
  var getdepartment = mini.get("department");
        var key = mini.get("department").getValue();
获取不到数据
显示
undefined
[object Object]

Rank: 8Rank: 8

地板
发表于 2021-10-14 17:55:21 |只看该作者
Journey 发表于 2021-10-14 16:53
在其他的页面通过弹窗显示这个页面。这个页面的下拉获取值的时候用
  var getdepartment = mini.get("dep ...

都不在一个页面,怎么能直接去获取?
var win=mini.open....
win.contentWindow.mini.get(id)

Rank: 2

5#
发表于 2021-10-15 09:13:01 |只看该作者
本帖最后由 Journey 于 2021-10-15 09:17 编辑
felt 发表于 2021-10-14 17:55
都不在一个页面,怎么能直接去获取?
var win=mini.open....
win.contentWindow.mini.get(id) ...

也许我应该换个问法,在弹窗的页面中有combobox,combobox能显示下拉的数据,在弹窗页面通过
       var getdepartment = mini.get("department");
        var key = mini.get("department").getValue();
获取combobox的值显示。
undefined
[object Object]

Rank: 8Rank: 8

6#
发表于 2021-10-15 10:23:36 |只看该作者
Journey 发表于 2021-10-15 09:13
也许我应该换个问法,在弹窗的页面中有combobox,combobox能显示下拉的数据,在弹窗页面通过
       var g ...

不是一个页面的控件,怎么能直接去获取
请跨页面去获取。

Rank: 2

7#
发表于 2021-10-15 10:59:18 |只看该作者
felt 发表于 2021-10-15 10:23
不是一个页面的控件,怎么能直接去获取
请跨页面去获取。

怎么跨?
A页面
  1.   + '<a class="Edit_Button" href="javascript:editRow(\'' + uid + '\')">修改</a>'

  2.     function editRow(id)
  3.     {
  4.         var row = grid.getSelected();
  5.         //console.log("usernumber"+row.usernumber);
  6.         if (row) {
  7.             mini.open({
  8.                 targetWindow: window,
  9.                 //url: bootPATH + "../../user/edit",
  10.                 url: bootPATH + "../../user/edituser?id="+row.id,
  11.                 title: "修改用户", width: 600, height: 400,
  12.                 onload: function () {
  13.                     var iframe = this.getIFrameEl();
  14.                     var data = { action: "user/edit", id: row.id };
  15.                     iframe.contentWindow.SetData(data);
  16.                 },
  17.                 ondestroy: function (action) {
  18.                     grid.reload();
  19.                 }
  20.             });
  21.         }
  22.     }
复制代码
弹窗的页面html同上诉js代码如下
  1. <script type="text/javascript">
  2.     mini.parse();
  3.     var form = new mini.Form("form1");
  4.     var grid = mini.get("form1");
  5.     grid.load();
  6.     function SaveData() {
  7.        // console.log("department:"+department);

  8.         var getdepartment = mini.get("department");
  9.         var key = mini.get("department").getValue();
  10.         console.log("key"+key);
  11.         console.log("getdepartment"+getdepartment);

  12.         saveForm(form, {

  13.             //  url: "../data/AjaxService.aspx?method=SaveEmployees",
  14.             // url:"../node/edit",
  15.             url:"../user/Save",
  16.             data: {department:getdepartment},
  17.           //  data: {department:department},
  18.             callback: function (success) {
  19.                 if (success) CloseWindow("save");
  20.                 else CloseWindow();
  21.             }
  22.         });
  23.     }
  24.     function onOk(e) {
  25.         SaveData();
  26.     }
  27.     function onCancel(e) {
  28.         CloseWindow("cancel");
  29.     }

  30.     //标准方法接口定义
  31.     function SetData(data) {
  32.         if (data.action == "user/edit") {
  33.             //跨页面传递的数据对象,克隆后才可以安全使用
  34.           //  data = mini.clone(data);
  35.            // console.log("userdata.id"+data.usernumber);
  36.             $.ajax({
  37.                 url: "../user/edit?id=" + data.id,
  38.                 cache: false,
  39.                 success: function (text) {
  40.                     var o = mini.decode(text);
  41.                     form.setData(o);
  42.                     form.setChanged(false);
  43.                     onDeptChanged();
  44.                     mini.getbyName("position").setValue(o.position);
  45.                 }
  46.             });
  47.         }
  48.     }
  49.     function GetData() {
  50.         var o = form.getData();
  51.         return o;
  52.     }
  53.     function CloseWindow(action) {
  54.         if (action == "close" && form.isChanged()) {
  55.             if (confirm("数据被修改了,是否先保存?")) {
  56.                 return false;
  57.             }
  58.         }
  59.         if (window.CloseOwnerWindow) return window.CloseOwnerWindow(action);
  60.         else window.close();
  61.     }
  62. </script>
复制代码

Rank: 8Rank: 8

8#
发表于 2021-10-15 13:32:42 |只看该作者
Journey 发表于 2021-10-15 10:59
怎么跨?
A页面弹窗的页面html同上诉js代码如下

最简单的跨页面方法
A页面
top["win"]=window;
B页面获取A页面内控件值
top["win"].mini.get(id).getValue()

Rank: 2

9#
发表于 2021-10-15 14:42:25 |只看该作者
felt 发表于 2021-10-15 13:32
最简单的跨页面方法
A页面
top["win"]=window;

不是这样的。
A页面弹窗到B页面。
B页面是一个弹窗。B页面中有combobox控件。在B页面的js中获取combobox的值。没有获取到,提交也是在B页面中提交的。

A页面弹窗的时候已经跨页面拿参数了,现在是要在B页面中拿B页面的combobox的值进行修改数据。

Rank: 8Rank: 8

10#
发表于 2021-10-15 15:06:18 |只看该作者
Journey 发表于 2021-10-15 14:42
不是这样的。
A页面弹窗到B页面。
B页面是一个弹窗。B页面中有combobox控件。在B页面的js中获取combobox ...

没跨页面的话可以直接获取的啊,检查一下id什么的是否正确,打个断点进去看看为什么没获取到这个combobox

Archiver|普加软件

GMT+8, 2024-5-3 12:36 , Processed in 1.050357 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部