我有15个按钮,使用ajax中的数据随机标记。我接下来需要的是当我点击这些按钮时,它会将按钮文本(仅1个字母)附加到相应输入框中的任何内容。每个按钮和输入都有一个基于其所在行的唯一ID;每行有15个按钮。
第1行按钮的HTML代码(我有很多行)。按钮不是通过jQuery UI按钮。
<table width="180" border="0">
<tr>
<td><button id="R1L1butt" class="letters"></button></td>
<td><button id="R1L2butt" class="letters"></button></td>
<td><button id="R1L3butt" class="letters"></button></td>
<td><button id="R1L4butt" class="letters"></button></td>
<td><button id="R1L5butt" class="letters"></button></td>
</tr>
<tr>
<td><button id="R1L6butt" class="letters"></button></td>
<td><button id="R1L7butt" class="letters"></button></td>
<td><button id="R1L8butt" class="letters"></button></td>
<td><button id="R1L9butt" class="letters"></button></td>
<td><button id="R1L10butt" class="letters"></button></td>
</tr>
<tr>
<td><button id="R1L11butt" class="letters"></button></td>
<td><button id="R1L12butt" class="letters"></button></td>
<td><button id="R1L13butt" class="letters"></button></td>
<td><button id="R1L14butt" class="letters"></button></td>
<td><button id="R1L15butt" class="letters"></button></td>
</tr>
</table>
这是我的最新代码:
//This is part of ajax success
//letArr is an array where the data from ajax is stored
//row2 is also from ajax
//ranArr is an array that contains the numbers 1-15
//letterArr is an array that contains the letters from A-Z
//This part works (except for the bindbuttons function)
for (var z=0; z<letArr.length; z++) //label random buttons depending on the data from ajax
{
ran1 = Math.floor(Math.random()*ranArr.length);
$("#R" + row2 + "L" + ranArr[ran1] + "butt").text(letArr[z]);
bindbuttons(row2, ranArr[ran1], letArr[z]);
ranArr.splice(ran1, 1);
}
for (var a=0; a<(15-letArr.length); a++) //fill in the other buttons with random letters
{
ran1 = Math.floor(Math.random()*ranArr.length);
ran2 = Math.floor(Math.random()*letterArr.length);
$("#R" + row2 + "L" + ranArr[ran1] + "butt").text(letterArr[ran2]);
bindbuttons(row2, ranArr[ran1], letterArr[ran2]);
ranArr.splice(ran1, 1);
}
然后这是绑定函数:
function bindbuttons(c, d, e)
{
$("#R" + c + "L" + d + "butt").on("click", function() {
$("#R" + c + "anstext").val( function (i, v) {
return v + e;
});
});
}
我尝试过以下方法:
我尝试在.text()和.html()之间切换来标记按钮。两者都很好。
2.在ajax成功中,使用.on(直接绑定在内)和$(this).text但是console.log甚至没有显示任何文本。
3.仍在ajax成功之中,直接使用数组中的值(letArr [z])和(letterArr [ran2]),但两者都没有在console.log中显示过去.text(letArr [z])和.text( letterArr [RAN2])
4.最后,将它放在一个函数中,以便在ajax成功中调用并传递参数,但这也不起作用。
我不知道如何去做我想要发生的事情,我只是尝试组合来看看它会起作用。有人能指出我正确的方向吗?基本上我想要的是,当点击按钮时,无论按钮的标签/文本是什么,它都将被添加到输入字段中的任何内容。
提前致谢!
答案 0 :(得分:0)
首先,我无法想象这是为了什么,它让我很好奇。
我也不清楚你所呈现的代码中的失败位置。
我建议使用输入类型=“按钮”而不是按钮...这样您就可以轻松获取值....然后确保所有元素都正确获取分配值(您可以检入浏览器web开发人员工具/ firebug)....然后得到这样的工作(不是100%确定获得价值的最佳方式......你可能需要通过ID获取它)
function bindbuttons(c, d, e)
{
$("#R" + c + "L" + d + "butt").on("click", function() {
alert(this.value);
});
}
然后继续将其插入输入(这应该很简单......)
$("#R" + c + "anstext").val(this.value);