两个函数与onchange

时间:2014-09-18 13:23:57

标签: javascript html jsp

我在.jsp中使用以下代码:

<script type="text/javascript">
function radioClick(e) {
    // workaround for IE, which fires the changed event merely when the focus changes
    e.blur();
    e.focus();
}

function showFoo(e) {
    document.getElementById('foo_agb').style.visibility = 
        e.checked && e.id == 'foo_radio_button' ? 'visible' : 'hidden';
    document.getElementById('foo_birthday').style.visibility = 
        e.checked && e.id == 'foo_radio_button' ? 'visible' : 'hidden';
}

function hideFoo(e) {
    document.getElementById('foo_agb').style.visibility = 'hidden';
    document.getElementById('foo_birthday').style.visibility = 'hidden';
}



function showBar(e) {
    document.getElementById('bar_agb').style.visibility = 
        w.checked && e.id == 'bar_radio_button' ? 'visible' : 'hidden';
    document.getElementById('bar_personalnr').style.visibility = 
        w.checked && e.id == 'bar_radio_button' ? 'visible' : 'hidden';
}

function hideBar(e) {
    document.getElementById('bar_agb').style.visibility = 'hidden';
    document.getElementById('bar_personalnr').style.visibility = 'hidden';
}
</script>

这需要通过点击这样的单选按钮来调用:

<%
        if (unrelatedstuff){
            }

%>
<INPUT id="foo_radio_button" <%=checked%> type="Radio" value="unrelated" name="Something" onclick="radioClick(this)" onchange="showFoo(this); hideBar(this);"> <%=list[i].getName()%><br>
<%
        }

        else if (moreunrelatedstuff){
                }

%>
<INPUT id="bar_radio_button" <%=checked%> type="Radio" value="unrelated" name="Something" onclick="radioClick(this)" onchange="showBar(this); hideFoo(this);"> <%=list[i].getName()%><br>
<%
        }
        else {
            if (youguessditevenmoreunrelatedstuff){
            }
%>
<INPUT <%=checked%> type="Radio" value="unrelated" name="Something" onclick="radioClick(this)" onchange="hideFoo(this); hideBar(this);"> <%=list[i].getName()%><br>

我以为我可以使用&#34; onchange&#34;来调用多个函数,比如&#34; showFoo; hideBar;&#34;但它似乎没有用。

任何想法我可能做错了什么,或者如何实现每次&#34; onChange&#34;?

2 个答案:

答案 0 :(得分:1)

我建议你避免使用阻碍javascript并将所有内容移到外部文件中。

var currentObject = document.getElementById("bar_radio_button");
currentObject.addEventListener("change", function() {
    other_function();
    another_function();
});

答案 1 :(得分:0)

抱歉,发布后我已经发现了我的错误..我有

w.checked 

而不是

e.checked 

其中一个功能。

有时,由于所有的树木,你无法看到森林.. :)