Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从单选按钮传递变量_Javascript_Html_Forms_Radio Button - Fatal编程技术网

Javascript 从单选按钮传递变量

Javascript 从单选按钮传递变量,javascript,html,forms,radio-button,Javascript,Html,Forms,Radio Button,我试图将变量从单选按钮传递到javascript链接中的变量。我无法将变量“testVar”传递到链接,该变量位于for循环中,用于检查checked单选按钮。我被难住了,这是完整的代码: <form> <label>Priority 1</label> <input type="radio" id="priority" name="priorityN" onclick="getResults();" value="prior1" /

我试图将变量从单选按钮传递到javascript链接中的变量。我无法将变量“testVar”传递到链接,该变量位于for循环中,用于检查checked单选按钮。我被难住了,这是完整的代码:

 <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>

优先事项1
优先事项2


var testVar=''; 函数getResults(){ var radios=document.getElementsByName(“priorityN”); 对于(var i=0;i
函数getResults(){
var checked=document.querySelector('[name=“priorityN”]:checked'),
link=document.querySelector(“#myLink”);
link.innerHTML='';
}

I在现代浏览器中,您可以使用
querySelector
而忽略循环:

function getResults() {
  var checked = document.querySelector('[name="priorityN"]:checked'),
      link = document.querySelector('#myLink');
  link.innerHTML = '<a href="...'+ checked.value +'">...</a>';
}
函数getResults(){
var checked=document.querySelector('[name=“priorityN”]:checked'),
link=document.querySelector(“#myLink”);
link.innerHTML='';
}

在我的评论之后,你可以做一些改变

  • 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>
    
  • 在我的评论之后,你可以做一些改变

  • 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
    生成链接,该值是一个空的stringQuestion标记。jQuery?编辑的标记在哪里。我将其放置在getResults函数中“在“for”循环后重新生成链接,但这不起作用。@user1511039,请参阅我回答中的实例。这就是我们所有人都认为您正在尝试的吗?如果您想在每次按下不同的单选按钮时重新生成链接,则需要将其移动到
    getResults
    函数中。否则,将使用当前ini生成链接。”
    testVar
    的tial值,这是一个标记为空的stringQuestion。jQuery在哪里?编辑的标记。我把它放在“for”循环之后的getResults函数中,但没有这样做。@user1511039,请参阅我答案中的实例。我们都认为你在尝试这样做吗?Alexander,很好的解决方案,唯一的问题是我想要在选择单选按钮之前显示一个链接。我将使用一个标记为“编辑所选”的按钮,而不是文本链接“。需要在单击单选按钮之前显示按钮吗?”@user1511039,只需将按钮HTML添加到
    myLink
    div元素中,就像其他任何元素一样。我将在中放置一个图像,当单击单选按钮时,该图像将消失,链接图像将出现。伟大的演示亚历山大,非常感谢。亚历山大,伟大的修复和唯一的问题是,我希望有一个链接之前显示单选按钮被选中。我将使用标记为“编辑选定项”的按钮,而不是文本链接。需要在单击单选按钮之前显示按钮吗?@user1511039,只需将按钮HTML添加到
    myLink
    div元素中,就像其他任何元素一样。我将在中放置一个图像,当单击单选按钮时,该图像将消失,链接图像将出现。伟大的演示亚历山大,非常感谢你。