jQuery MiniUI
标题:
保存数据的时候 获取的数据没有 元素 name=pk 的值
[打印本页]
作者:
hw_2x_vc
时间:
2017-3-11 11:50:52
标题:
保存数据的时候 获取的数据没有 元素 name=pk 的值
本帖最后由 hw_2x_vc 于 2017-3-11 12:01 编辑
var json = mini.encode([o]); 这个方法 是根据 元素的name 和value 来生成数据的吗?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>枚举类别面板</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link href="/miniui/demo.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/miniui/scripts/boot.js"></script>
<script type="text/javascript" src="/miniui/core.js"></script>
<script type="text/javascript" src="/miniui/scripts/tongji.js" ></script>
<script type="text/javascript" src="/Content/style/lib/jquery-1.8.0.min.js"></script>
<style type="text/css">
html, body
{
font-size:12px;
padding:0;
margin:0;
border:0;
height:100%;
overflow:hidden;
}
</style>
</head>
<body>
<form id="form1" method="post">
<input id="pk" name="pk" class="mini-hidden" />
<div style="padding-left:11px;padding-bottom:5px;">
<table style="table-layout:fixed;">
<tr>
<td style="width:70px;">枚举类别:</td>
<td style="width:150px;">
<input id="cps_enumtype" name="enumtype" class="mini-textbox" required="true" emptyText="请输入类别"/>
</td>
</tr>
</table>
</div>
<div style="text-align:center;padding:10px;">
<a class="mini-button" style="width:60px;margin-right:20px;">确定</a>
<a class="mini-button" style="width:60px;">取消</a>
</div>
</form>
<script type="text/javascript">
mini.parse();
var form = new mini.Form("form1");
function SaveData() {
var o = form.getData();
form.validate();
if (form.isValid() == false) return;
var json = mini.encode([o]);
$.ajax({
url: "/sysEnum/SaveEnum",
type: 'post',
data: { data: json },
cache: false,
success: function (text) {
CloseWindow("save");
},
error: function (jqXHR, textStatus, errorThrown) {
alert(jqXHR.responseText);
CloseWindow();
}
});
}
////////////////////
//标准方法接口定义
function SetData(data) {
if (data.action == "edit") {
//跨页面传递的数据对象,克隆后才可以安全使用
data = mini.clone(data);
//$("#cps_enumtype$text").val(data.enumtype);
$("#cps_pk").val(data.pk);
var oname = document.getElementById("cps_enumtype$text");
//id 自动增加了
$text 能说一说规则吗? 什么时候加 会加那些
oname.value = data.enumtype;
var oname = document.getElementById("pk");
oname.value = data.pk;
}
}
function GetData() {
var o = form.getData();
return o;
}
function CloseWindow(action) {
if (action == "close" && form.isChanged()) {
if (confirm("数据被修改了,是否先保存?")) {
return false;
}
}
if (window.CloseOwnerWindow) return window.CloseOwnerWindow(action);
else window.close();
}
function onOk(e) {
SaveData();
}
function onCancel(e) {
CloseWindow("cancel");
}
</script>
</body>
</html>
运行后的前台 情况
<form id="form1" method="post">
<input type="hidden" class="mini-hidden" id="pk" name="pk" value="2">
<input type="hidden" class="mini-hidden" id="_state" name="_state" value="edit">
<div style="padding-left:11px;padding-bottom:5px;">
<table style="table-layout:fixed;">
<tbody><tr>
<td style="width:70px;">枚举类别:</td>
<td style="width:150px;">
<span class="mini-textbox mini-required" id="cps_enumtype" style="border-width: 0px;">
<span class="mini-textbox-border">
<input type="text" class="mini-textbox-input" autocomplete="off" placeholder="请输入类别" id="cps_enumtype$text" name="enumtype">
</span><input type="hidden">
</span>
</td>
</tr>
</tbody></table>
</div>
<div style="text-align:center;padding:10px;">
<a class="mini-button" href="javascript:void(0)" style="width: 60px; margin-right: 20px;"><span class="mini-button-text ">确定</span></a>
<a class="mini-button" href="javascript:void(0)" style="width: 60px;"><span class="mini-button-text ">取消</span></a>
</div>
</form>
后台的 json 自动pk 和_state 的值丢失了
[{"pk":"","_state":"","enumtype":"收费项目7898"}]
作者:
dforce
时间:
2017-3-13 09:28:15
mini.encode只是将对象格式化成字符串,不会改变数据。本地测试了你这个数据encode之后还是有pk和enumtype两个字段的
欢迎光临 jQuery MiniUI (http://miniui.com/discuss/)
Powered by Discuz! X2