[英]Alert message in ASP.NET
我是ASP.NET编程的新手。 如果未单击RadioButton
则需要显示一条消息。 我已经为onclick
事件编写了JavaScript,以处理单个选择。
我的代码:
if(rbTest.Checked == true)
{
//my code
}
else
{
string message = "Please select case to download";
lnkbtnDownload.Attributes.Add("onclick", "alert('" + message + "');return false;");
}
即使我选择了一个单选按钮,它也会继续显示警报消息。 为什么?
您必须检查在lnkbtnDownload的onclick处理程序中是否单击了单选按钮。
lnkbtnDownload.Attributes.Add("onclick","if(!document.getElementById('rbTest').checked))alert('message')");
您需要了解服务器端代码和客户端代码之间的区别。 您的代码是用服务器上运行的C#编写的。 我认为这是正在发生的事情:
一种。 您的页面首次呈现,用户未选择相关的单选按钮。 然后,他/她提交页面(可能通过LinkButton)。
b。 页面提交,粘贴的代码在服务器上运行。 您检查单选按钮是否已选中。 如果没有,请向LinkButton添加一个属性,以便在单击LinkButton时将发出警报。
C。 回发后呈现页面,并将新属性添加到LinkButton。
d。 单击LinkButton时,您会收到一条带有消息的警报。 由于您已将其设置为返回false,因此该页面将不会再次提交,并将继续向您显示警报。
你看到这里发生了什么吗? 您的警报条件需要在客户端上进行检查。 @Phoenix提供的代码片段应该是一个很好的起点。
采用
var r = documet.getElementById("rbTest")
然后与r[0].checked
使用索引,因为单选按钮r可以是数组
这比较丑陋,但是可以解决问题:
<script>
var rbSelected = false;
</script>
<form onsubmit="if (!rbSelected) { alert('You must select something!";return false}">
<input type="radio" name="rbTest" onclick="rbSelected=true" value=1>a
<input type="radio" name="rbTest" onclick="rbSelected=true" value=2>b
<input type="radio" name="rbTest" onclick="rbSelected=true" value=3>c
<input type="submit value="Submit">
</form>
如果您有多个单选按钮(我希望您这样做),那么在没有所有这些额外循环逻辑等的情况下,您真的不能使用getElementById ...这样可以避免循环。
参见示例: http : //jsbin.com/edoke
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.