繁体   English   中英

ASP.NET中的警报消息

[英]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#编写的。 我认为这是正在发生的事情:

一种。 您的页面首次呈现,用户未选择相关的单选按钮。 然后,他/她提交页面(可能通过LinkBut​​ton)。

b。 页面提交,粘贴的代码在服务器上运行。 您检查单选按钮是否已选中。 如果没有,请向LinkBut​​ton添加一个属性,以便在单击LinkBut​​ton时将发出警报。

C。 回发呈现页面,并将新属性添加到LinkBut​​ton。

d。 单击LinkBut​​ton时,您会收到一条带有消息的警报。 由于您已将其设置为返回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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM