Javascript问题中的HTML单选按钮验证

时间:2013-07-26 06:25:16

标签: javascript jquery

 <input id="tid" type="radio" name="t" value="">
    <label for="tid">
        Technology</label>

    <input id="sid" type="radio" name="t" value="">
    <label for="sid">
        Science</label>
    <asp:Button runat="server" ID="btn" Text="Submit" OnClientClick="return xyz()" />


 <script>
        function xyz() {

            var x = document.getElementsByName("t");
            var isChecked = false;
            var message = "";
            for (var i = 0; i < x.length; i++) {

                if (x[i].checked) {

                    isChecked = true;
                    message = x[i].nextSibling().innerHTML;
                    alert(message);
                    break;
                }

            }

            if (isChecked == false) {
                alert("Select");

            }

            return false;



        }

我无法获得文本警告框;为什么NextSibling方法不能在这里工作?是getelementbyname还获得与radiobutton相关联的Label?或者它会得到只有radiobuttons的数组?我不想使用Value field..thks ...

4 个答案:

答案 0 :(得分:1)

工作演示http://jsfiddle.net/cse_tushar/Pv6EJ/

nextSibling()错了

使用

message = x[i].nextSibling.innerHTML;

像这样叫你javascript函数

onclick="xyz()";

不是

OnClick="return xyz()"

答案 1 :(得分:0)

nextSibling是属性而不是函数。使用是这样的:

message = x[i].nextSibling.innerHTML;

您未定义的原因是因为单选按钮中没有innerHTML个人。如果要检索存储在<label>标记中的值,则需要将单选按钮的值设置为标签文本,然后使用value属性: HTML:

<input id="tid" type="radio" name="t" value="tech">
    <label for="tid">
        Technology</label>
<input id="sid" type="radio" name="t" value="science">
<label for="sid">
    Science</label>

使用Javascript:

for (var i = 0; i < x.length; i++) {
            if (x[i].checked) {
                isChecked = true;
                message = x[i].value;
                alert(message);
                break;
            }

        }

答案 2 :(得分:0)

nextSibling属性不是函数,而nextSibling使用nextElementSibling,因为nextSibling将返回文本节点

message = x[i].nextElementSibling.innerHTML;

答案 3 :(得分:0)

试试这个小提琴test link with your example

更改此

 message = x[i].nextSibling().innerHTML;

 message = x[i].nextSibling.nextSibling.innerHTML;

希望它有所帮助。 干杯