我有一个表单,用户可以存储和编辑他们的技能在不同的语言。我正在使用一个叫做"raty“的插件来让用户对他们的语言技能进行评分。后台使用Spring。我将语言等级存储在一个名为languageRatings的String[]中。
技能的实际设置不是问题,但是当我想让用户编辑他们的语言技能时,我会遇到问题。问题是表单输入的名称是由raty本身提供的库设置的,这意味着当languageRatings填充输入字段时,输入名称“Spring”并不存在。
下面是一个小示例,说明如何初始化raty:
$('#star').raty({
scoreName: 'languageRatings'
});
<div id="star"></div>为了解决这个问题,我创建了一个新的隐藏输入:
<form:hidden path="languageRatings" id="hiddenRatings"/>我的想法是让Spring填充此输入,允许我在raty设置正确名称后从此输入元素中提取值。
隐藏字段由包含评级的数组填充,如下所示:{5,4,2}。我不太擅长使用Jquery :-(我试过这样做,但它打印整个字符串,而不是每个数组元素
$(document).ready(function() {
var ratings = $('#hiddenRatings').val();
$.each(ratings, function(index, value) {
console.log(index + ': ' + value);
});
});产生
0: {
1: 5
2: ,
3:
4: 3
5: ,
6:
7: 2
8: }如何提取此数组中的值?
发布于 2012-01-18 21:19:19
由于你的值是"{5, 4, 2}",你可以这样做:
var val = $('#hiddenRatings').val(), // "{5, 4, 2}"
arr = /\{(.*)\}/.exec(val)[1].split(", ");
$.each(arr, function (index, value) {
console.log(index + ': ' + value);
});RegEx去掉了花括号,结果被", "拆分,留下一个包含["5", "4", "2"]的Array。
发布于 2012-01-18 21:15:05
尝试像这样添加elemets : 1,2,3,4
然后,您可以使用以下命令拆分字符串:
var ratings = $('#hiddenRatings').val().split(",");因此,您可以访问如下字段:
field0 = ratings[0];或
alert(ratings[1]);https://stackoverflow.com/questions/8910621
复制相似问题