Tôi đang gặp một vấn đề lạ với trạng thái kích hoạt asp.net của radio.máy chủ asp.net bên bị vô hiệu hóa Radiobutton kích hoạt trên phía khách hàng
Mã trong trang .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>
Và Mã Đằng sau:
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
Về phía server, tôi vô hiệu hóa nút radio trên nạp đầu tiên. Tôi có điều kiện tương tự trong javascript. Vì vậy, ở phía khách hàng, nếu người dùng nhấp vào Có, tôi bật một số điều khiển. Tôi làm như vậy ở phía máy chủ. Nó hoạt động tốt với tất cả các loại điều khiển ngoại trừ nút radio.
Giả sử khi tải, tôi tắt các nút radio. Về phía khách hàng, dựa trên đầu vào của người dùng, tôi kích hoạt chúng (trong javascript). Người dùng đã kiểm tra nút radio và gửi trang. Ở phía máy chủ, nút radio bị tắt và không được chọn. Tôi có mã kiểm tra các điều kiện và kích hoạt nó. Nhưng nút radio vẫn chưa được chọn. Tôi hiểu tại sao, máy chủ bỏ qua trạng thái đã chọn vì lúc đầu, nó nghĩ rằng nó bị vô hiệu hóa. Có cách nào để làm cho công việc này? Tôi biết máy chủ đang nhận trạng thái được kiểm tra vì khi tôi kiểm tra Request.Form, tôi thấy radDisable = Có.
Cảm ơn sự giúp đỡ của bạn.
jsfiddle được cung cấp cho thấy bạn không sử dụng nút radio asp. Nó là điều khiển đầu vào html đơn giản. Làm thế nào bạn truy cập nó trên máy chủ? Bạn đã sử dụng thuộc tính runat = "server" trong html của mình chưa? – ataurrehman
Tôi không thể đặt mã asp.net trong jsfiddle (hoặc có thể?). Tôi đang sử dụng Nút radio asp. –
tất nhiên bạn không thể. Đã được yêu cầu xác nhận. thử vô hiệu hóa ViewState cho các nút radio đó và thực hiện tương tự. Không tắt lượt xem cho toàn bộ trang. Chỉ cần vô hiệu hóa trạng thái xem nút radio. – ataurrehman