0

奇妙な問題があります。最初は非表示にしたいボタン「NextButton」がありますが、チェックボックスをクリックすると表示されます。以下のコードは機能せず、エラーも発生しません。IE9とFireFox13でテストしましたが、他の質問を検索しましたが、発生している問題を見つけることができませんでした...

<html>
<head>
<script language="javascript">
        function enableNext() {
            alert("clicked");

            var s1 = document.getElementsByName("NextButton");
            s1.style.visibility = "visible";
        } 
    </script>
</head>

<body>
<input type="submit" name="NextButton" value="Next" style="visibility:hidden;"/>
<input type="checkbox" onClick="enableNext()" />
</body>

</html>
4

4 に答える 4

3

コードで配列が返され、配列にスタイルを適用しています。以下のコードに変更してください。

 function enableNext() {
            alert("clicked");

            var s1 = document.getElementsByName("NextButton")[0];//Get the first and only button in your case
            s1.style.visibility = "visible";
        } 
于 2012-07-12T07:05:34.833 に答える
1

document.getElementsByNameは、一致した要素の配列を返します。それをループして、配列内の個々のアイテムのスタイルを変更する必要があります。jQueryを使用して簡単に処理できます。または$("[name='NextButton']").css("visibility", "visible")、cssdisplayプロパティを使用する場合は、$("[name='NextButton']").show()またはを使用できます.hide()。さらに、jQueryを使用したくない場合は、idを使用するだけで、useを使用する代わりに、getElementsByName必要getElementByIdな単一の要素を返します。

于 2012-07-12T07:05:23.580 に答える
1

idHTML要素で使用してからdocument.getElementById()。これにより、完全に一致する要素が得られます。

<script language="javascript">
        function enableNext() {
            alert("clicked");

            var s1 = document.getElementById("NextButton");
            s1.style.visibility = "visible";
        } 
</script>

<input type="submit" id="NextButton" name="NextButton" value="Next" style="visibility:hidden;"/>>

于 2012-07-12T07:11:01.693 に答える
0

javascriptだけではなくcssを使ってみるべきだと思います。

使ってみてください

document.getElementsByName("NextButton")[0];
于 2012-07-12T07:05:55.757 に答える