我试图将变量从单选按钮传递到javascript链接中的变量。我无法获得变量'testVar',它是在for循环检查中检查单选按钮,传递给链接。我很难过,这是完整的代码:
<form>
<label>Priority 1</label>
<input type="radio" id="priority" name="priorityN" onclick="getResults();" value="prior1" />
<label>Priority 2</label>
<input type="radio" id="priority" name="priorityN" onclick="getResults();" value="prior2" />
</form>
<br /><br />
<div id="myLink"></div>
<script>
var testVar = '';
function getResults() {
var radios = document.getElementsByName("priorityN");
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) {
testVar = (radios[i].value);
// alert(radios[i].value);
break;
}
}
}
document.getElementById("myLink").innerHTML = '<a href=\"' + 'www.example.com?pri=' + testVar + '\" onclick=\"$(this).modal({width:880, height:460}).open(); return false;\" >' + 'My Modal Link' + "</a>";
</script>
答案 0 :(得分:1)
的 SEE LIVE DEMO 强>
根据我的评论,您可以进行一些更改。
id
属性应该是唯一的。您可以使用类名而不是id
。
<form>
<label>Priority 1</label>
<input type="radio" class="priority" name="priorityN" onclick="getResults();" value="prior1" />
<label>Priority 2</label>
<input type="radio" class="priority" name="priorityN" onclick="getResults();" value="prior2" />
</form>
如果您想在每次按下不同的单选按钮时重新生成链接,则需要在getResults
功能中移动它。否则,它将使用当前初始值testVar
生成,这是一个空字符串。
function getResults() {
var testVar;
var radios = document.getElementsByName("priorityN");
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) {
testVar = (radios[i].value);
document.getElementById("myLink").innerHTML = '<a href=\"' + 'www.example.com?pri=' + testVar + '\" onclick=\"$(this).modal({width:880, height:460}).open(); return false;\" >' + 'My Modal Link' + "</a>";
break;
}
}
}
答案 1 :(得分:0)
我可以使用现代浏览器querySelector
而忘记循环:
function getResults() {
var checked = document.querySelector('[name="priorityN"]:checked'),
link = document.querySelector('#myLink');
link.innerHTML = '<a href="...'+ checked.value +'">...</a>';
}