1

ASP のコンテンツ ページに移動した JavaScript コードに問題があります。

スタンドアロンのページで完全に機能しました。

<script type="text/javascript">
        function validateQ12(oSrc, args) {
            var rbtnList = document.getElementsByName('rbtn12');
            var noClicked = false;
            for (var i = 0; i < rbtnList.length; i++) {
                if (rbtnList[i].checked) {
                    noClicked = rbtnList[i].value == "No";
                    break;
                }
            }
            if (noClicked) {
                args.IsValid = true;                   
            }
            else
                args.IsValid = args.Value.trim().length > 0;                   
        }
    </script> 

私は両方のページでhtmlを調べましたが、機能したページには

<input id="rbtn12_1" type="radio" name="rbtn12" value="No" checked="checked" onclick="Q12iNo();">

コンテンツページ内の新しいものには

<input id="MainContent_rbtn12_1" type="radio" name="ctl00$MainContent$rbtn12" value="No" checked="checked" onclick="Q12iNo();">

明らかに、名前の変更が問題を引き起こしているに違いありません。JavaScript コードでこの新しい名前を参照するにはどうすればよいですか?

4

2 に答える 2

0

レンダリングされた要素名を取得するには、次を使用します。

<%= rbtn12.UniqueID %>

ただし、各ラジオボタン項目をループする必要があるように見えるため、これはまだ機能しない場合があります。

次の投稿を参照してください。

JQueryでラジオボタンがチェックされているかどうかを確認しますか?

これは、ラジオ ボタン コレクションに選択された値があるかどうかを判断する方法を示しています。

于 2013-03-15T09:12:31.063 に答える
0

コントロールに className を追加して、getElementByClassName を使用できますか?

<input id="MainContent_rbtn12_1" type="radio" name="ctl00$MainContent$rbtn12" value="No" checked="checked" onclick="Q12iNo();" CssClass="Radio">

<script type="text/javascript">
        function validateQ12(oSrc, args) {
            var rbtnList = document.getElementsByClassName('Radio');
            var noClicked = false;
            for (var i = 0; i < rbtnList.length; i++) {
                if (rbtnList[i].checked) {
                    noClicked = rbtnList[i].value == "No";
                    break;
                }
            }
            if (noClicked) {
                args.IsValid = true;                   
            }
            else
                args.IsValid = args.Value.trim().length > 0;                   
        }
    </script> 
于 2013-03-15T09:16:41.330 に答える