我有一个奇怪的问题,启用asp.net的单选按钮状态。asp.net服务器端禁用在客户端启用Radiobutton
代码在.aspx页面中:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm1.aspx.vb" Inherits="testradioButton.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#radYes').change(function() { gererEtat(); });
$('#radNo').change(function() { gererEtat(); });
});
function gererEtat() {
$('#radDisabledYes').prop('disabled', !$('#radYes').prop('checked'));
$('#radDisabledNo').prop('disabled', !$('#radYes').prop('checked'));
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:radiobutton ID="radYes" runat="server" GroupName="test" Text="yes"></asp:radiobutton>
<asp:radiobutton ID="radNo" runat="server" GroupName="test" Text="No"></asp:radiobutton>
</div>
<div>
<asp:radiobutton ID="radDisabledYes" runat="server" GroupName="test2" Text="yes"></asp:radiobutton>
<asp:radiobutton ID="radDisabledNo" runat="server" GroupName="test2" Text="No"></asp:radiobutton>
</div>
<asp:LinkButton ID="lnktoto" runat="server" Text="Submit"></asp:LinkButton>
</form>
</body>
</html>
和代码背后:
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
radDisabledYes.Enabled = radYes.Checked
radDisabledNo.Enabled = radYes.Checked
End If
Stop
End Sub
Private Sub Radiobutton1_CheckedChanged(sender As Object, e As EventArgs) Handles radYes.CheckedChanged, radNo.CheckedChanged
radDisabledYes.Enabled = radYes.Checked
radDisabledNo.Enabled = radYes.Checked
End Sub
Private Sub lnktoto_Click(sender As Object, e As EventArgs) Handles lnktoto.Click
Stop
End Sub
End Class
在服务器端,我禁用第一负载单选按钮。我在JavaScript中有相同的条件。所以在客户端,如果用户单击是,我启用一些控件。我在服务器端做同样的事情。它适用于除单选按钮以外的所有类型的控件。
让我说负载,我禁用单选按钮。在客户端,基于用户输入,我启用它们(在JavaScript中)。用户检查了一个单选按钮并提交页面。在服务器端,单选按钮被禁用并且未被选中。我有代码检查条件并启用它。但单选按钮仍未被检查。我明白为什么,服务器忽略检查状态,因为一开始它认为它被禁用。有没有办法做到这一点?我知道服务器正在接受检查状态,因为当我检查Request.Form时,我看到radDisable = Yes。
感谢您的帮助。
jsfiddle提供了显示您没有使用asp单选按钮。这是简单的html输入控件。你如何在服务器上访问它?你有没有在你的html中使用runat =“server”属性? – ataurrehman
我不能把asp.net代码放入jsfiddle(或者我可以吗?)。我正在使用asp单选按钮。 –
当然你不能。要求确认。尝试禁用这些单选按钮的视图状态,并执行相同的操作。不要禁用整个页面的视图。只需禁用单选按钮视图状态。 – ataurrehman