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

QQ登录

只需一步,快速开始

查看: 3898|回复: 14

[结贴] list嵌套里怎么获取子list中input的值?

[复制链接]

12

主题

54

帖子

104

积分

初级会员

Rank: 2

积分
104
QQ
发表于 2016-5-1 10:51:02 | 显示全部楼层 |阅读模式
用嵌套list写的一个评论功能,求问怎么实现点击评论2后面的按钮就能获取评论2的内容?附框架图,截图,代码(现在的bug是无论点哪个评论后面的按钮,获取的永远是评论1的内容) 1.jpg 2.jpg 独立完整代码.zip (2.44 KB, 下载次数: 178)
发表于 2016-5-4 09:55:41 | 显示全部楼层
1.首先,在list 中的input 的bind-ref属性 应该写成 : ref('字段')  ,这样才表示list中当前行对应的data字段对应行的字段值!
2.list中获取当前行的值,也应该是通过data组件获取的!获取方法,点击事件中:
var row = event.bindingContext.$object;
row.val("字段");
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

12

主题

54

帖子

104

积分

初级会员

Rank: 2

积分
104
QQ
 楼主| 发表于 2016-5-4 10:45:55 | 显示全部楼层
liangyongfei 发表于 2016-5-4 09:55
1.首先,在list 中的input 的bind-ref属性 应该写成 : ref('字段')  ,这样才表示list中当前行对应的data ...

您或许没懂我的意思,这里的评论框input是不关联数据的,我想做一个评论功能,用户在评论框里输入数据,然后在click方法里获取Input里用户所输入的内容,再写入数据库。现在出现的问题是,无论点击哪个评论框后面的按钮,获取的数据都是第一个评论框的内容
回复 支持 反对

使用道具 举报

发表于 2016-5-5 10:22:45 | 显示全部楼层
lichao309 发表于 2016-5-4 10:45
您或许没懂我的意思,这里的评论框input是不关联数据的,我想做一个评论功能,用户在评论框里输入数据, ...

不关联数据也可以做!就是比较麻烦!
所以,我还是建议你关联上数据,然后通过获取data组件当前行的值来做吧!
数据库保存也应该是data组件的保存操作才对!!

这是官方的推荐方案!简单实用!!所以我建议你这样做!

当然,你非要在list中获取input的dom对象!请参考: http://bbs.wex5.com/forum.php?mo ... 3&pid=165200495
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

12

主题

54

帖子

104

积分

初级会员

Rank: 2

积分
104
QQ
 楼主| 发表于 2016-5-5 11:41:39 | 显示全部楼层
liangyongfei 发表于 2016-5-5 10:22
不关联数据也可以做!就是比较麻烦!
所以,我还是建议你关联上数据,然后通过获取data组件当前行的 ...

您好,非常感谢您的耐心解答!我试了其他两种跳转dom的方法,还是有BUG,但是使用数据关联的办法成功解决了这个问题。不过现在出现了一个新bug,就是响应上有问题,input输入数据后,需要数秒后才会检测到数据的变化(如果是空白评论框输入数据后在几秒内就点击评论按钮,便会显示undefined,而过一段时间再点击才会显示当前数据,这样的话作为评论功能还是一个不小的BUG的)请问这个可以怎么解决呢?
回复 支持 反对

使用道具 举报

发表于 2016-5-5 17:05:46 | 显示全部楼层
lichao309 发表于 2016-5-5 11:41
您好,非常感谢您的耐心解答!我试了其他两种跳转dom的方法,还是有BUG,但是使用数据关联的办法成功解决 ...

确实,在点击事件中还需要调用这个input组件失去光标的方法!
因为,只有input移开光标的时候,才会真正触发onchange事件!才会去同步数据的!
所以,你需要在点击事件中先获取input  dom对象 然后执行js方法让他移开焦点!这样就可以获取data中同步过来的数据了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

12

主题

54

帖子

104

积分

初级会员

Rank: 2

积分
104
QQ
 楼主| 发表于 2016-5-6 09:31:14 | 显示全部楼层
liangyongfei 发表于 2016-5-5 17:05
确实,在点击事件中还需要调用这个input组件失去光标的方法!
因为,只有input移开光标的时候,才会真正 ...

测试了下用bind-focus,好像不行,具体应该怎么写呢?还请明示
回复 支持 反对

使用道具 举报

发表于 2016-5-6 13:36:44 | 显示全部楼层
lichao309 发表于 2016-5-6 09:31
测试了下用bind-focus,好像不行,具体应该怎么写呢?还请明示

bind-focus 是事件,获取焦点的时候触发的!
而我想让你实现的是,通过js获取input的js对象,并让他它移开光标!
这个你上网查下吧!
参考我4楼提供的连接,获取到dom对象,然后再调用它的blur()  方法!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

12

主题

54

帖子

104

积分

初级会员

Rank: 2

积分
104
QQ
 楼主| 发表于 2016-5-6 15:47:32 | 显示全部楼层
liangyongfei 发表于 2016-5-6 13:36
bind-focus 是事件,获取焦点的时候触发的!
而我想让你实现的是,通过js获取input的js对象, ...

现在的问题只需要点击按钮时input框失去焦点便可全部解决,不过我试了多种方法,诸如  //alert(event.source.domNode.parentNode);
       //var dom=event.source.domNode.parentNode;
       //var dom=event.source.domNode;
       //dom.blur();
       //$(this.getElementByXid('commentInput')).blur();
      // $(this.getElementByXid("commentInput",dom)).blur();
     // $(this.comp('commentInput')).blur();
     // $(this.comp('commentInput'),dom).blur();
都无法在点击按钮后使input框失去焦点。小弟技拙,还请明示
回复 支持 反对

使用道具 举报

发表于 2016-5-6 17:25:52 | 显示全部楼层
lichao309 发表于 2016-5-6 15:47
现在的问题只需要点击按钮时input框失去焦点便可全部解决,不过我试了多种方法,诸如  //alert(event.sou ...

本地试过这种方法是可以的
$(event.source.$domNode.parent().find("input[xid='input1']")[0]).focus()
$(event.source.$domNode.parent().find("input[xid='input1']")[0]).blur()
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 23:45 , Processed in 0.059803 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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