<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 ...
答案 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;
希望它有所帮助。 干杯