如何使用单选按钮的onclick事件更改链接的onclick事件?

时间:2014-05-07 07:49:23

标签: javascript onclick

我在过去3个小时左右的时间里一直试图解决这个问题,但我无法在任何地方找到答案。我尝试做的是使用单选按钮的onclick事件动态更改链接的onclick事件。这甚至可能吗?我的代码看起来像这样..

    <input type="radio" name="test" onclick="document.getElementById('submit').onclick='alert(\'Hello\');'">First<br/>
    <input type="radio" name="test" onclick="document.getElementById('submit').onclick='alert(\'Hi\');'">Second<br/>

<a id="submit" onclick="" href="index.html">Click Here</a>

4 个答案:

答案 0 :(得分:2)

试试这个:

<input type="radio" name="test" onclick="document.getElementById('submit').onclick=function(){alert('Hello');}">First<br/>
    <input type="radio" name="test" onclick="document.getElementById('submit').onclick=function(){alert('Hi');}">Second<br/>

<a id="submit" onclick="" href="index.html">Click Here</a>

小提琴:http://jsfiddle.net/kfpzY/

答案 1 :(得分:0)

试试这个,

<input type="radio" name="test" onclick="attachEventToLinkOnClick(myFuncion1)">First<br/>
<input type="radio" name="test" onclick="attachEventToLinkOnClick(myFuncion2)">Second<br/>

<a id="submit" onclick="" href="index.html">Click Here</a>

<script type="text/javascript">
    function attachEventToLinkOnClick(func){
        var link = document.getElementById("submit");
        link.onclick = fun;
    }

    function myFuncion1(){
       alert("hello");
    }
    function myFuncion2(){
       alert("hi");
    }

</script>

答案 2 :(得分:0)

我建议您在撰写<script type="text/javascript"><input>元素后添加新的脚本代码<a>

<input type="radio" name="test" onclick="changeFun(fun1)">First<br/>

<input type="radio" name="test" onclick="changeFun(fun2)">Second<br/>

<a id="submit" onclick="" href="index.html">Click Here</a>

在脚本标记内写下以下内容:

<script type="text/javascript">

    var fun1 = function () {
       alert('Hello')
    }

    var fun2  = function () {
        alert('Hi')    
    }

    var changeFun = function (newFun) {
        document.getElementById('submit').onclick = newFun;
    }

</script>

祝你好运。

答案 3 :(得分:0)

查看此jsfiddle

http://jsfiddle.net/h_awk/98Gt8/

<input type="radio" name="test" class="test" />
<input type="radio" name="test" class="test" />

<a id="submit" href="javascript:void(0);">Click Here</a>

<script>
    function addEvent(elemClass, elemId, evt, index, cbFunc)
    {
        var elemClass = document.getElementsByClassName(elemClass),
            elemId = document.getElementById(elemId);

        if( elemClass[index] )
        {
            elemId.addEventListener(evt, cbFunc, false);
        }
    }

    function say(msg)
    {
        alert(msg);
    }

    addEvent('test', 'submit', 'click', 0, function(){say('hello');});
    addEvent('test', 'submit', 'click', 1, function(){say('hi');});
</script>

这应该有效,但有一点点问题,冒泡,我会尝试修复它,因为你看到它是如何工作的..