我要判断一个 radiobuttonlist 中 选项是否空,用javascript实现,仅在页面上实现不传回服务器。
比如这个radiobuttonlist的ID='Q1'里面有2个选项value值分别为A和B,我在用javascript判断的时候if(document.all('Q1'...
比如 这个 radiobuttonlist的 ID='Q1' 里面有2个选项 value值分别为A和B ,
我在用javascript 判断的时候 if(document.all('Q1').selectedvalue == '')
{
--略--
}
每次断点到该条件时不进断点 ,document.all('Q1').selectedvalue 的值 总是 undifine ,是这个条件有问题么 我试过 value 试过 selectedindex 都不行,不知道为什么,请高手解答。
就是要实现一个 如果为空 那么页面上会提示
但这个条件始终不正确 总是不进断点 或者 IF 前面还要用点其他方法请赐教。分有的是。 展开
我在用javascript 判断的时候 if(document.all('Q1').selectedvalue == '')
{
--略--
}
每次断点到该条件时不进断点 ,document.all('Q1').selectedvalue 的值 总是 undifine ,是这个条件有问题么 我试过 value 试过 selectedindex 都不行,不知道为什么,请高手解答。
就是要实现一个 如果为空 那么页面上会提示
但这个条件始终不正确 总是不进断点 或者 IF 前面还要用点其他方法请赐教。分有的是。 展开
10个回答
展开全部
测试通过。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication9.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function aa() {
var obj = document.getElementById("<%=RadioButtonList1.ClientID %>");
var radioList = obj.getElementsByTagName("input");
if (radioList[0].checked) {
alert("第一项");
}
else {
alert("第二项");
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<asp:ListItem Value="0">第一项</asp:ListItem>
<asp:ListItem Value="1">第二项</asp:ListItem>
</asp:RadioButtonList>
<a href="Javascript:aa()">123</a>
</div>
</form>
</body>
</html>
至于您上面的问题提到过:其他服务器控件没有用clientid也成功,这个我不是太清楚原因。这个radiolist这样用是可以的。
如果用户未选择,提示为空,您可以for循环radioList,逐个判断
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication9.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function aa() {
var obj = document.getElementById("<%=RadioButtonList1.ClientID %>");
var radioList = obj.getElementsByTagName("input");
if (radioList[0].checked) {
alert("第一项");
}
else {
alert("第二项");
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<asp:ListItem Value="0">第一项</asp:ListItem>
<asp:ListItem Value="1">第二项</asp:ListItem>
</asp:RadioButtonList>
<a href="Javascript:aa()">123</a>
</div>
</form>
</body>
</html>
至于您上面的问题提到过:其他服务器控件没有用clientid也成功,这个我不是太清楚原因。这个radiolist这样用是可以的。
如果用户未选择,提示为空,您可以for循环radioList,逐个判断
展开全部
不行的,Q1只是服务器端的ID,页面运行之后自动生成的ID不是这个,
要不你这样吧
var rdo=document.getElementsTagName("radiobutton");
for(var i=0;i<rdo.length;i++){
if(rdo[i].checked==true){
---略----
}
}
要不你这样吧
var rdo=document.getElementsTagName("radiobutton");
for(var i=0;i<rdo.length;i++){
if(rdo[i].checked==true){
---略----
}
}
追问
未成功。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
formID 是 form的ID名字
<form id="formID" onsubmit="return checkform()">
<input type="radio" name="Q1" value="A" />
<input type="radio" name="Q1" value="B" />
<input type="submit">
</form>
<script language="JavaScript">
function checkform(){
var c=true;
for(i=0;i<formID.Q1.length;i++)
if(formID.Q1[i].checked)
c=false;
if(c){
--略--
alert('请选择');return false;
}
return true;
}
</script>
<form id="formID" onsubmit="return checkform()">
<input type="radio" name="Q1" value="A" />
<input type="radio" name="Q1" value="B" />
<input type="submit">
</form>
<script language="JavaScript">
function checkform(){
var c=true;
for(i=0;i<formID.Q1.length;i++)
if(formID.Q1[i].checked)
c=false;
if(c){
--略--
alert('请选择');return false;
}
return true;
}
</script>
更多追问追答
追问
radiobuttenlist 加个 form 干嘛?
追答
就是这个意思呗
function checkformAB(){
var c=true;
for(i=0;i
A
B
C
D
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用Jquery做吧,VS2010都自带了Jquery1.4.1了 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" >
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>测试</title>
<script src="/Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
function chekSelect() {
var q1Vlue = $("input:radio[name='Q1']:checked");//获取选中的radio对象
if (q1Vlue.val() != null) {//如果为null,就没有选中一个
alert(q1Vlue.val());
return true;
}
else {
alert("请选择一个");
return false;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
体形:<asp:RadioButtonList ID="Q1" runat="server">
<asp:ListItem Value="A">苗条</asp:ListItem>
<asp:ListItem Value="B">肥胖</asp:ListItem>
</asp:RadioButtonList>
<asp:Button ID="btn1" runat="server" Text="提交" OnClientClick="return chekSelect();"/>
</div>
</form>
</body>
</html>
PS:不管.net控件什么形式,js操作,你只要看它html源是什么样子就好,RadioButtonList 到html自然都是<input type="radio" />,生成的html,name都等于你RadioButtonList 的ID。那就好办了。根据name获取,操作。
推荐用Jquery的一个插件FormValidator来做,只要一行代码: $("input:radio[name='Q1']").formValidator({onshow:"请选择",onfocus:"你选一个吧",oncorrect:"输入正确",defaultvalue:[1]}).inputValidator({min:1,max:1,onerror:"忘记选了,请确认"});
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" >
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>测试</title>
<script src="/Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
function chekSelect() {
var q1Vlue = $("input:radio[name='Q1']:checked");//获取选中的radio对象
if (q1Vlue.val() != null) {//如果为null,就没有选中一个
alert(q1Vlue.val());
return true;
}
else {
alert("请选择一个");
return false;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
体形:<asp:RadioButtonList ID="Q1" runat="server">
<asp:ListItem Value="A">苗条</asp:ListItem>
<asp:ListItem Value="B">肥胖</asp:ListItem>
</asp:RadioButtonList>
<asp:Button ID="btn1" runat="server" Text="提交" OnClientClick="return chekSelect();"/>
</div>
</form>
</body>
</html>
PS:不管.net控件什么形式,js操作,你只要看它html源是什么样子就好,RadioButtonList 到html自然都是<input type="radio" />,生成的html,name都等于你RadioButtonList 的ID。那就好办了。根据name获取,操作。
推荐用Jquery的一个插件FormValidator来做,只要一行代码: $("input:radio[name='Q1']").formValidator({onshow:"请选择",onfocus:"你选一个吧",oncorrect:"输入正确",defaultvalue:[1]}).inputValidator({min:1,max:1,onerror:"忘记选了,请确认"});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的 document.all('Q1').selectedvalue 这个是什么啊;你用all,那你的radiobuttonlist标签要有name属性啊;而且all不是all()方法吧;javascript中你用这个吗:document.getElementById("Q1").selectedvalue
追问
还是不行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ID是服务器端的ID,呈现页面时,ID会变的
你可以在页面里面用<%=Q1.ClientID%>来获得他的客户端ID
你可以在页面里面用<%=Q1.ClientID%>来获得他的客户端ID
追问
这样? 我其他的 例如 一般的text box 还有 dropdownlist 等 都没有这么复杂啊 都是直接使用的ID。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询