0

このjavascriptは、radiobuttonlistを除いてすべて機能します。

<script language="javascript" type="text/javascript">
function validate() {
    if (document.getElementById("<%=txtballotName.ClientID%>").value == "") {
        alert("Ballot Name can not be blank");
        document.getElementById("<%=txtballotName.ClientID%>").focus();
        return false;
    }

    if (document.getElementById("<%=txtballotCity.ClientID %>").value == "") {
        alert("Ballot City can not be blank");
        document.getElementById("<%=txtballotCity.ClientID %>").focus();
        return false;
    }
    if (document.getElementById("<%=txtballotState.ClientID%>").value == "") {
        alert("Ballot State cannot be blank");
        document.getElementById("<%=txtballotState.ClientID%>").focus();
        return false;
    }
    if (document.getElementById("<%=txtballotZip.ClientID%>").value == "") {
        alert("Zip Code cannot be blank");
        document.getElementById("<%=txtballotZip.ClientID%>").focus();
        return false;
    }
        if (document.getElementById("<%= txtreceivedby.ClientID %>").checked == false) {
        alert("Request Received By can not be blank");
        document.getElementById("<%=txtreceivedby.ClientID%>").focus();
        return false;
    }

     return true;
}

radiobuttonListは次のようになります。

<tr>
    <td>
        <label for="txtreceivedby_0">FAX</label>
        <input id="txtreceivedby_0" type="radio" name="txtreceivedby" value="Fax" />
    </td>
    <td>
        <label for="txtreceivedby_1">EMAIL</label>
        <input id="txtreceivedby_1" type="radio" name="txtreceivedby" value="Mail" />
    </td>
    <td>
        <label for="txtreceivedby_2">PHONE</label>
        <input id="txtreceivedby_2" type="radio" name="txtreceivedby" value="Phone" />
    </td>
</tr>

これまでのところ、txtreceivedbyラジオボタンを除いて、他のフォームフィールドが検証されています。エラーは発生していませんが、検証もされていません。前もって感謝します

4

3 に答える 3

1

任意のラジオグループの値を取得する短い小さなユーティリティ関数を作成できます。

function getRadioValue(name) {
    var items = document.getElementsByName(name);
    for (var i = 0; i < items.length; i++) {
        if (items[i].checked) {
            return(items[i].value);
        }
    }
}

次に、次のようにラジオグループのチェック項目を取得できます。

var val = getRadioValue("txtreceivedby");

作業デモ: http: //jsfiddle.net/jfriend00/PHXaC/

于 2012-04-28T04:58:28.323 に答える
0

一言で言えば、大きな頭痛の種。あなたが私をページングするなら、私は素敵な古き良きファッション<select>ボックスで行きます。

ただし、有用であるためには、ASPコードがブラウザーに何を反映しているかを正確にビューソースで確認する必要があります。ASPはわかりませんが、各無線で3つの異なるIDを出力するか、3つすべてで同じID(#txtreceivedby)を出力しているに違いありません。

それが何を与えるにせよ、検証コードif(bla_bla_blah.checked===false)は間違っています。なぜなら、それはラジオのセットの1つだけを対象とし、それが修正されたとしても、そのラジオは.checked===falseクロスブラウザを返さないかもしれないからです。

于 2012-04-28T03:59:46.727 に答える
0

ASPのラジオボタンリストは、ラジオボタンアイテムを含むテーブルとしてレンダリングされます。したがって、ラジオボタンのチェック済みステータスを取得するのは少し複雑です。

「ASPradiobuttonlistandjavascript」をグーグルで検索すると、さまざまなソースが見つかる可能性があります。私はそれらのいくつかをテストしましたが、あなたのページがマスターページから作成された場合、それらのすべてが特にうまく機能したわけではありません。

しかし、私は自分のやり方で試しました、そしてここにそれがあります:

<asp:RadioButtonList ID="txtReceivedBy" runat="server">
    <asp:ListItem Text="Fax" Value="0"></asp:ListItem>
    <asp:ListItem Text="Email" Value="1"></asp:ListItem>
    <asp:ListItem Text="Phon" Value="2"></asp:ListItem>
</asp:RadioButtonList>
<input type="button" onclick="alert(checkedRadio());" value="Test RadioButtonChecked Status" />

そして、私がcehckedステータスを取得するために使用したjavascriptはここにあります

function checkedRadio() {
    var rtn = false;
    var i = 0;
    var radioBoxesContainer = document.getElementById("<%=txtReceivedBy.ClientID%>");
    if (radioBoxesContainer) {
        var radioBoxes = radioBoxesContainer.getElementsByTagName("input");
        if (radioBoxes && radioBoxes.length > 0) {
            for (i - 0; i < radioBoxes.length; i++) {
                if (radioBoxes[i].checked) {
                    rtn = true;
                    break;
                }
            }
        }
    }
    return rtn;
}

ライブデモを入手したい場合は、http://plugins.amiwithyou.com/sof/で見つけることができます。

于 2012-04-28T06:04:49.047 に答える