小程序
小游戏
企业微信
微信支付
扫描小程序码分享
在开发小程序的过程中发现,input控件的bindconfirm响应函数中event的数据存在问题,event.detail.value保存的是之前一次确认的文字,而非当前input控件中的文字,能否帮忙看一下,谢谢。
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
辛苦贴一段比较简单可重现的代码,谢谢。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
index.wxml代码如下:
<!--index.wxml-->
<
view
class
=
"search-music-container"
>
"search-music-search"
input
"search-music-input"
placeholder
"搜索音乐、歌手、歌词、用户"
placeholder-class
"search-music-input-placeholder"
bindconfirm
"onSearhTextConfirm"
type
"text"
/>
</
"search-music-list"
wx:for
"{{musicList}}"
wx:for-item
"item"
hover
"{{true}}"
hover-class
"search-music-item-hover"
"search-music-item"
data-hash
"{{item.hash}}"
data-item
"{{item}}"
bindtap
"onMusicItemClick"
text
"search-music-title"
>{{item.songname}}</
"search-music-author"
>{{item.singername}}</
wx:if
"{{index < musicList.length - 1}}"
"search-music-item-seperator"
></
index.js的代码如下:
//index.js
//获取应用实例
const searchUrlPattern =
"http://mobilecdn.kugou.com/api/v3/search/song?format=json&keyword={0}&page={1}&pagesize={2}&showtype=1"
;
const getMusicUrlPattern =
"http://m.kugou.com/app/i/getSongInfo.php?hash={0}&cmd=playInfo"
String.format =
function
() {
if
(arguments.length == 0) {
return
null
}
var
str = arguments[0];
for
(
i = 1; i < arguments.length; i++) {
re =
new
RegExp(
'\\{'
+ (i-1) +
'\\}'
,
'gm'
);
str = str.replace(re, arguments[i]);
str;
getSearchMusicUrl(keyword, pageSize, pageIndex) {
String.format(searchUrlPattern, keyword, pageIndex, pageSize);
getMusicUrl(hash) {
String.format(getMusicUrlPattern, hash);
Page({
data: {
musicList: [],
searchText:
""
},
onMusicItemClick:
(event) {
args = event.currentTarget.dataset;
item = args.item;
url = getMusicUrl(args.hash);
wx.request({
url: url,
success:
(res) {
mp3url = res.data.url;
wx.playBackgroundAudio({
dataUrl: mp3url
});
onSearhTextConfirm:
that =
this
requestUrl = getSearchMusicUrl(event.detail.value, 5, 0);
console.log(event);
console.log(requestUrl);
url: requestUrl,
console.log(res);
data = res.data;
info = data.data.info;
that.setData({
musicList: info
fail:
(err) {
console.log(err);
complete:
})
index.wxss代码如下:
/**index.wxss**/
.search-music-container {
height
:
100%
display
: flex;
flex-
direction
: column;
.search-music-search {
width
: row;
.search-music-input {
padding-top
15
rpx;
padding-left
padding-bottom
font-size
30
.search-music-input-placeholder {
.search-music-list {
.search-music-item {
.search-music-item-hover {
background
#F0F0F0
.search-music-title {
color
#050505
43
rpx
.search-music-author {
#777777
.search-music-item-seperator {
2
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
辛苦贴一段比较简单可重现的代码,谢谢。
index.wxml代码如下:
<!--index.wxml-->
<
view
class
=
"search-music-container"
>
<
view
class
=
"search-music-search"
>
<
input
class
=
"search-music-input"
placeholder
=
"搜索音乐、歌手、歌词、用户"
placeholder-class
=
"search-music-input-placeholder"
bindconfirm
=
"onSearhTextConfirm"
type
=
"text"
/>
</
view
>
<
view
class
=
"search-music-list"
wx:for
=
"{{musicList}}"
wx:for-item
=
"item"
>
<
view
hover
=
"{{true}}"
hover-class
=
"search-music-item-hover"
class
=
"search-music-item"
data-hash
=
"{{item.hash}}"
data-item
=
"{{item}}"
bindtap
=
"onMusicItemClick"
>
<
text
class
=
"search-music-title"
>{{item.songname}}</
text
>
<
text
class
=
"search-music-author"
>{{item.singername}}</
text
>
</
view
>
<
view
wx:if
=
"{{index < musicList.length - 1}}"
class
=
"search-music-item-seperator"
></
view
>
</
view
>
</
view
>
index.js的代码如下:
//index.js
//获取应用实例
const searchUrlPattern =
"http://mobilecdn.kugou.com/api/v3/search/song?format=json&keyword={0}&page={1}&pagesize={2}&showtype=1"
;
const getMusicUrlPattern =
"http://m.kugou.com/app/i/getSongInfo.php?hash={0}&cmd=playInfo"
;
String.format =
function
() {
if
(arguments.length == 0) {
return
null
;
}
var
str = arguments[0];
for
(
var
i = 1; i < arguments.length; i++) {
var
re =
new
RegExp(
'\\{'
+ (i-1) +
'\\}'
,
'gm'
);
str = str.replace(re, arguments[i]);
}
return
str;
}
function
getSearchMusicUrl(keyword, pageSize, pageIndex) {
return
String.format(searchUrlPattern, keyword, pageIndex, pageSize);
}
function
getMusicUrl(hash) {
return
String.format(getMusicUrlPattern, hash);
}
Page({
data: {
musicList: [],
searchText:
""
},
onMusicItemClick:
function
(event) {
var
args = event.currentTarget.dataset;
var
item = args.item;
var
url = getMusicUrl(args.hash);
wx.request({
url: url,
success:
function
(res) {
var
mp3url = res.data.url;
wx.playBackgroundAudio({
dataUrl: mp3url
});
}
});
},
onSearhTextConfirm:
function
(event) {
var
that =
this
;
var
requestUrl = getSearchMusicUrl(event.detail.value, 5, 0);
console.log(event);
console.log(requestUrl);
wx.request({
url: requestUrl,
success:
function
(res) {
console.log(res);
var
data = res.data;
var
info = data.data.info;
that.setData({
musicList: info
});
},
fail:
function
(err) {
console.log(err);
},
complete:
function
(err) {
console.log(err);
}
})
}
})
index.wxss代码如下:
/**index.wxss**/
.search-music-container {
height
:
100%
;
display
: flex;
flex-
direction
: column;
}
.search-music-search {
width
:
100%
;
display
: flex;
flex-
direction
: row;
}
.search-music-input {
padding-top
:
15
rpx;
padding-left
:
15
rpx;
padding-bottom
:
15
rpx;
font-size
:
30
rpx;
width
:
100%
;
}
.search-music-input-placeholder {
font-size
:
30
rpx;
}
.search-music-list {
height
:
100%
;
}
.search-music-item {
padding-top
:
15
rpx;
padding-bottom
:
15
rpx;
padding-left
:
15
rpx;
display
: flex;
flex-
direction
: column;
}
.search-music-item-hover {
padding-top
:
15
rpx;
padding-bottom
:
15
rpx;
padding-left
:
15
rpx;
display
: flex;
flex-
direction
: column;
background
:
#F0F0F0
;
}
.search-music-title {
color
:
#050505
;
font-size
:
43
rpx
}
.search-music-author {
color
:
#777777
;
font-size
:
30
rpx;
}
.search-music-item-seperator {
background
:
#F0F0F0
;
height
:
2
rpx;
width
:
100%
}