如何在按下按钮时传递两个变量?这可能看起来很基本,但我完全卡住了!
我正在创建一个左侧有一个单选按钮的表,当你按下它时我想要检索两个值。我目前正在检索一个值,但我想念另一个。
目前我将一个值传递给我的onRadioButtonPress函数,如下所示:
html += "<tr><td><center><br>
<input type='radio'
onclick='onRadioButtonPress(this.value)'
name='siteChosen'
value='"+siteIDArray[i]+"'>
<center></td>";
我正在调用这样的函数:
//function for on radio button press
function onRadioButtonPress(val){
//blah blah blah
}
哪种方法效果很好,但如何添加
的第二个值usagePlanArray [I]
我的onClick函数?我该如何改变输入?
提前谢谢!!! :)如果您有任何问题,或者我错过了可以帮助您的事情,请告诉我!
解决!
请参阅@mplungjan的标记答案。我使用了他对jQuerys有用的替代方法。
答案 0 :(得分:3)
value='"+siteIDArray[i]+"|"+usagePlanArray[i]+"'>
但您还需要从HTML中删除换行符
然后在函数中你可以使用
var vals=val.split("|");
var siteID=vals[0], usagePlan=vars[1];
替代方案 - 在jQUery中特别有用:
html += "<tr><td><center><br><input type='radio'"+
" onclick='onRadioButtonPress(this)' name='siteChosen'"+
" data-siteid='"+siteIDArray[i]+"'"+
" data-usageplan='"+usagePlanArray[i]+"'><center></td>";
和
function onRadioButtonPress(rad) {
var siteID=rad.getAttribute("data-siteid"),
usageplan=rad.getAttribute("data-usageplan"),
}
答案 1 :(得分:0)
在JSON中传递数组:
value='"+JSON.stringify(siteIDArray)+"'>
这会将整个数组作为JSON数组字符串传递。
传递给单个值:
value='["+siteIDArray[i] + "," + usagePlanArray[i] + "]'>
或作为对象:
value='{ \"val1\":\""+siteIDArray[i] + "\",\"val2\":\"" + usagePlanArray[i] + "\"]'>
现在在函数中解码
values = JSON.parse(val);
...
xyz = values[0]; // for the array
...
xyz = values.val1; // for the object
代码甚至可以优化,如果您直接将其传递给onclick而不是value参数,但这可能有一些额外的用途。
答案 2 :(得分:0)
如果对两个数组使用相同的索引,为什么不将索引存储为值并在单击回调中查找所需的值?
var html= "";
var siteIDArray = [1, 5, 2, 33];
var usagePlanArray = ["unlimited", "20gb", "10gb", "5gb" ]
function arrayCombo(index){
return {siteId: siteIDArray[index], usagePlan: usagePlanArray[index]};
}
for(var i=0; i<siteIDArray.length; i++){
html += "<tr><td><center><br><input type='radio' name='siteChosen' value="+i+"><center></td>";
}
$('#content').html(html);
$('input').on('click', function(event){
//Do whatever you want with the values you are looking for here
var x = arrayCombo(this.value);
alert(x.siteId+", "+x.usagePlan);
});
另外,为了演示数组之间这种紧密结合的关系,最好将它们的值存储在共享索引中作为数组中对象的属性。