1

ラジオボタンからjavascriptリンクの変数に変数を渡そうとしています。チェックされたラジオボタンのforループチェックにある変数'testVar'をリンクに渡すことができません。私は困惑していて、これは完全なコードです:

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

2 に答える 2

1

SEE LIVE DEMO

私のコメントに続いて、いくつかの変更を行うことができます。

  1. 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>
    
  2. 別のラジオボタンが押されるたびにリンクを再生成する場合は、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;
            }
        }
    }
    
于 2013-02-26T23:23:23.477 に答える
0

querySelector私はあなたが使用でき、ループを忘れることができる最新のブラウザです:

function getResults() {
  var checked = document.querySelector('[name="priorityN"]:checked'),
      link = document.querySelector('#myLink');
  link.innerHTML = '<a href="...'+ checked.value +'">...</a>';
}
于 2013-02-26T23:20:02.580 に答える