起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3755|回复: 10

[结贴] UI下通过JS改变了控件的值,无法保存到数据库

  [复制链接]

8

主题

70

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
发表于 2013-12-24 11:12:05 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
在UI下,进行日期计算,将计算出的天数写入控件iptFVacationDays,保存时无法保存到数据库,不知如何处理。
计算数据及显示都正确。
具体JS函数:
mainActivity.CalVacationDays = function(event){
var objStart=justep.xbl("iptFVacationStartDate");
var objEnd=justep.xbl("iptFVacationEndDate");
var obj =justep.xbl("iptFVacationDays");
var strSeparator = "-"; //日期分隔符
var oDate1;
var oDate2;
var iDays;
oDate1= objStart.getValue()+"";
oDate1=oDate1.split(strSeparator);
oDate2= objEnd.getValue()+"";
oDate2= oDate2.split(strSeparator);
var strDateS = new Date(oDate1[0] + "-" + oDate1[1] + "-" + oDate1[2]);
var strDateE = new Date(oDate2[0] + "-" + oDate2[1] + "-" + oDate2[2]);
iDays = parseInt((strDateE-strDateS ) / 1000 / 60 / 60 /24)+1;//把相差的毫秒数转换为天数
obj.setValue(iDays);
};

每天进步一点点就好

1

主题

1222

帖子

1378

积分

金牌会员

Rank: 6Rank: 6

积分
1378
QQ
发表于 2013-12-24 11:19:02 | 显示全部楼层
要把数据值set到组件对应的data里面
回复 支持 反对

使用道具 举报

11

主题

85

帖子

507

积分

高级会员

Rank: 4

积分
507
QQ
发表于 2013-12-24 11:21:40 | 显示全部楼层
obj.setValue("这里是你对应的字段名",iDays,obj.getCurrentID());

评分

参与人数 1 +3 收起 理由
jishuang + 3 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

58

主题

410

帖子

823

积分

高级会员

Rank: 4

积分
823
QQ
发表于 2013-12-24 11:28:22 | 显示全部楼层
data.saveDate()
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2013-12-24 11:31:14 | 显示全部楼层
楼主,你求天数干嘛要写的这么复杂,直接获取日期类型,用diff就行啦
参考这个帖子了,3楼的用法:http://bbs.justep.com/forum.php? ... =%E5%A4%A9%E6%95%B0
QQ:179785966
回复 支持 反对

使用道具 举报

8

主题

70

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
 楼主| 发表于 2013-12-24 11:39:56 | 显示全部楼层
yinlun 发表于 2013-12-24 11:31
楼主,你求天数干嘛要写的这么复杂,直接获取日期类型,用diff就行啦
参考这个帖子了,3楼的用法:http://b ...

要在页面上用户变更了日期,则在后面显示天数。我想只能用JS来解决。JS中好像没有diff的。
每天进步一点点就好
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2013-12-24 12:33:53 | 显示全部楼层
qdcsoft 发表于 2013-12-24 11:39
要在页面上用户变更了日期,则在后面显示天数。我想只能用JS来解决。JS中好像没有diff的。 ...

你打开API文档,在搜索里输入diff
QQ截图20131224123239.jpg

评分

参与人数 1 +5 收起 理由
jishuang + 5 赞一个!

查看全部评分

QQ:179785966
回复 支持 反对

使用道具 举报

8

主题

70

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
 楼主| 发表于 2013-12-24 12:44:54 | 显示全部楼层
yinlun 发表于 2013-12-24 12:33
你打开API文档,在搜索里输入diff

啊,谢谢,我试试。
每天进步一点点就好
回复 支持 反对

使用道具 举报

8

主题

70

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
 楼主| 发表于 2013-12-24 12:45:29 | 显示全部楼层
yinlun 发表于 2013-12-24 12:33
你打开API文档,在搜索里输入diff

谢谢。非常感谢。
每天进步一点点就好
回复 支持 反对

使用道具 举报

8

主题

70

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
 楼主| 发表于 2013-12-24 13:19:46 | 显示全部楼层
感谢各位的帮助,现代码已修改完成。前台显示及保存到数据库的问题均已解决。感谢yinlun,Snodes!
新修改的代码如下:
mainActivity.CalVacationDays = function(event){
//开始日期控件
var objStart=justep.xbl("iptFVacationStartDate");
//结束日期控件
var objEnd=justep.xbl("iptFVacationEndDate");
//天数文本框控件
var obj =justep.xbl("iptFVacationDays");
//计算天数
iDays=justep.Date.diff(justep.Date.fromString(objStart.currentValue, justep.Date.STANDART_FORMAT_SHOT),justep.Date.fromString(objEnd.currentValue,justep.Date.STANDART_FORMAT_SHOT) , 'd')+1;
//天数写到前台文本框控件
obj.setValue(iDays);
//数据对象
var data=justep.xbl("dataMain");
//修改数据 data.getCurrentID()为当前行
data.setValue("fVacationDays", iDays, data.getCurrentID());
};
每天进步一点点就好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-19 20:49 , Processed in 0.113520 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表