继续Javascript - Radio Button onChange
这是我的代码:
<html>
<head>
<script type="text/javascript">
function Change(radio)
{
for(i = 1; i <=3; i++)
{
if(i == radio.value)
{
setvalue = "Y";
value = setvalue;
radiovalue = radio.value;
}
else
{
setvalue = "N";
value = setvalue;
radiovalue = radio.value;
}
ChangeValue(setvalue,value);
}
function ChangeValue(setvalue,value)
{
var getvalue = value;
document.write(getvalue);
}
}
</script>
</head>
<body>
<?php
for($i = 1; $i <= 3; $i++)
{
?>
<input type="radio" name="choice" value="<?php echo $i;?>" onchange="Change(this)" /><br />
<?php
}
?>
</body>
</html>
从上面的代码中,如果我点击第一个单选按钮,则输出为YNN 现在我想用逗号(YNN)分隔值并将结果放入数组(&#34; Y&#34;,&#34; N&#34;,&#34; N&#34;)。 />
我在ChangeValue函数中写了以下内容:
function ChangeValue(setvalue, value)
{
var getvalue = value;
document.write(getvalue);
var seperate = new array();
seperate = getvalue.spilt(",");
}
但是上面的代码并没有把我的值放到数组中。
我究竟做错了什么?有什么解决方案可以解决这个问题吗?
答案 0 :(得分:0)
您必须将split
字符串分隔为单独的字符数组。
var str = 'YNN'; //or whatever
var strWithComma = str.split(''); //to char array
在此之后,您可以join
将字符转换为新字符串以显示输出。
var str = 'YNN';
var strWithComma = str.split('').join(','); //'YNN' (string) --> ['Y','N','N'] (string/char array) --> "Y,N,N" (string)
希望这有帮助
<强> Demo 强>
答案 1 :(得分:0)
JavaScript String对象具有split
方法,可以执行您要求的操作。它根据指定的分隔符对字符串进行分区,并返回一个数组,每个分区都有自己的索引。如果使用空白(空字符串)分隔符进行拆分,则将字符串标记为单个字符。
要将单选按钮的值作为字符串获取,您可以遍历它们并检查每个按钮的value
属性。
var input = "YNN"
var result = input.split(''); // returns ["Y", "N", "N"]
var valStr = "";
function main() {
var radioBtns = document.getElementsByName("choice");
for (var i = 0; i < radioBtns.length; i++) {
radioBtns[i].onchange = valChange;
}
valStr = Array(radioBtns.length + 1).join("N")
}
function valChange(event) {
var changedElem = event.target;
var elemValue = changedElem.value;
var elemIdx = +elemValue - 1;
var resultStr = replaceChar(valStr, elemIdx, 'Y');
getElem("outputStr").innerHTML = resultStr;
getElem("outputArr").innerHTML = resultStr.split('');
}
function replaceChar(str, idx, chr) {
return str.substr(0, idx) + chr + str.substr(idx + chr.length);
}
function getElem(id) {
return document.getElementById(id);
}
window.onload = main;
&#13;
span[id^="output"] {
border: 2px solid black;
margin: 2px;
width: 50px;
}
div {
margin-top: 7px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Select an option:
<br />
<input type="radio" name="choice" value="1" />
<br />
<input type="radio" name="choice" value="2" />
<br />
<input type="radio" name="choice" value="3" />
<div>String Output: <span id="outputStr"> </span>
</div>
<div>Array Output: <span id="outputArr"> </span>
</div>
&#13;