0

除了单选按钮列表之外,这个 javascript 几乎都可以工作。

<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;
}

单选按钮列表如下所示:

<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

You can create a short little utility function that will get you the value of any radio group:

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

You can then get the checked item in your radio group like this:

var val = getRadioValue("txtreceivedby");

Working Demo: http://jsfiddle.net/jfriend00/PHXaC/

于 2012-04-28T04:58:28.323 回答
0

简而言之,严重的头痛;如果你给我打电话,我会穿上漂亮的老式时装<select>盒子去。

但要有用,您需要查看源代码,了解 ASP 代码向浏览器输出的确切内容。我不知道 ASP,但我敢打赌,它要么在每个收音机上输出 3 个不同的 id,要么在所有三个收音机上输出相同的 id (#txtreceivedby)。

无论它给出什么,验证代码if(bla_bla_blah.checked===false)都是错误的,因为它只针对一组无线电中的一个,即使修复了这个,该无线电也可能不会返回.checked===false跨浏览器。

于 2012-04-28T03:59:46.727 回答
0

ASP 的单选按钮列表呈现为包含单选按钮项目的表格。因此,获取单选按钮的选中状态有点复杂。

如果您在 Google 上搜索“ASP 单选按钮列表和 javascript”,您可能会找到各种来源。我已经测试了其中的一些,但如果您的页面是从母版页创建的,则并非每个都运行良好。

但是,我以自己的方式尝试过,这里是:

<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 回答