我正在尝试使用 jquery 更改 asp.net 中动态创建的 html 单选按钮的选中属性。我尝试了不同的方法,但我无法更改属性。
我的aspx页面和文件后面的代码如下,
<%@ Page Title="" Language="C#" MasterPageFile="~/FormMaster.master" AutoEventWireup="true"
CodeFile="ArabiaHRLetterSurveyForm.aspx.cs" Inherits="HRLetter_Arabia_ArabiaHRLetterSurveyForm" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div class="latest" style="width: 98%; margin-removed 10px; margin-removed 10px">
<span class="corner-left"><span class="corner-right">
<div class="actions">
<a href="#" class="status" id="lnkHistory" style="color: #fff">History</a></div>
HR Letter Survey Form </span></span>
</div>
<div style="width: 98%; margin-removed 10px; margin-removed 10px;">
<div>
<table cellpadding="0" cellspacing="0" width="100%" class="tableClass">
<tr class="trClass" align="right">
<th class="full" colspan="5">
Header
</th>
</tr>
<tr class="trClass" style="width: 100%">
<td class="first" style="width: 20%">
Request No
</td>
<td class="last" style="width: 80%">
<a href="#" class="status" id="lnkRequestNo" style="color: Blue" target="_blank">
<%=Request["requestid"]%></a>
</td>
</tr>
</table>
</div>
</div>
<div id="div_survey" runat="server" style="width: 98%; margin-left: 10px; margin-right: 10px;">
</div>
<div>
<table align="center">
<tr>
<td class="innerTd">
<a href="#" id="btnSubmit" runat="server" class="button-small" önserverclick="btnSubmit_Click">
<span class="corner-left-small"><span class="corner-right-small">Submit</span></span></a>
</td>
</tr>
</table>
</div>
<asp:HiddenField ID="hUserIdEncrypted" runat="server" />
<asp:HiddenField ID="hInitiatorUserId" runat="server" />
<asp:HiddenField ID="hSurveyId" runat="server" />
<script type="text/javascript">
$("#lnkRequestNo").attr("href", "ArabiaHRLetterRequest.aspx?requestid=" + <%=Request["requestid"]%> +"&userId= " + $("#<%=hUserIdEncrypted.ClientID %>").val());
$("#lnkHistory").fancybox({
'width': 700,
'height': 400,
'autoScale': true,
'transitionIn': 'none',
'transitionOut': 'none',
'type': 'iframe'
});
$("#lnkHistory").attr("href", "ArabiaHRLetterSurveyFormHistory.aspx?surveyid=" + $("#<%=hSurveyId.ClientID %>").val());
$("#<%=btnSubmit.ClientID %>").click(function(ev) {
ev.preventDefault();
var id;
var selected;
$("#<%=div_survey.ClientID %> tr:not(:has(th))").each(function() {
$(this).find("td").each(function() {
var o = $(this);
var firstCol = o.parent().children().first();
id = firstCol.text();
selected = "N/A";
firstCol.next().next().find("input").each(function() {
if($(this).is("checked")) {
if($(this).val() == "YES")
selected = "YES";
else if($(this).val() == "NO")
selected = "NO";
else if($(this).val() == "N/A")
selected = "NA";
}
});
firstCol.next().next().find("textarea").each(function() {
selected = "TextArea";
});
});
alert(id);
alert(selected);
});
});
$("input").each(function() {
$(this).click(function(ev) {
alert($(this).val());
if($(this).val() == "YES")
{
$("input[value='YES']").attr('checked', true);
$("input[value='NO']").attr('checked', false);
$("input[value='N/A']").attr('checked', false);
}
else if($(this).val() == "NO")
{
$("input[value='YES']").attr('checked', false);
$("input[value='NO']").attr('checked', true);
$("input[value='N/A']").attr('checked', false);
}
else if($(this).val() == "N/A")
{
$("input[value='YES']").attr('checked', false);
$("input[value='NO']").attr('checked', false);
$("input[value='N/A']").attr('checked', true);
}
//$('#Yes').attr("checked",false).checkboxradio("refresh");
//$("input[type='radio']").attr("checked",true).checkboxradio("refresh");
//$('input[name="yes_no_na0"]').attr('checked', false);
//$(this).next().attr('checked', false);
//$(this).next().next().attr('checked', false);
});
});
</script>
</asp:Content>
My code behind file is as follows,
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GWC.ToolKits;
using System.Data.Linq;
using System.Linq;
using System.Text;
using System.Windows;
public partial class HRLetter_Arabia_ArabiaHRLetterSurveyForm : System.Web.UI.Page
{
protected void Page_PreInit(object sender, EventArgs e)
{
}
protected void Page_Init(object sender, EventArgs e)
{
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindQuestions();
hInitiatorUserId.Value = EncryptDecrypt.EncryptDecrypt.GetDecryptedData(Request["userId"]);
hUserIdEncrypted.Value = Request["userId"];
var m1 = Database.GetSurveyId(Request["requestId"]);
hSurveyId.Value = m1.survey_id.ToString();
var m = Database.GetSurveyId(Request["requestid"]);
}
}
private void BindQuestions()
{
StringBuilder surveytable = new StringBuilder();
var m = Database.GetQuestions();
if (m.Count > 0)
{
surveytable.Append("<table cellpadding='0' cellspacing='0' width='100%' class='tableClass'>");
surveytable.Append("<tr class='trClass' align='right'>");
surveytable.Append("<th class='full'>Id</th><th class='full'>Questions</th><th class='full'>Answers</th>");
surveytable.Append("</tr>");
if (m.Count > 0)
{
for (int i = 0; i < m.Count; i++)
{
surveytable.Append("<tr class='trClass' style='width:100%'>");
surveytable.Append("<td class='first' style='width:5%'>" + m[i].question_id + "</td>");
surveytable.Append("<td class='first' style='width:60%'>" + m[i].question_description + " </td>");
if (m[i].question_type_id == 1)
{
surveytable.Append("<td class='last' style='width:35%'>");
surveytable.Append("<input id=\"rdoYes" + i + "\" name=\"yes_no_na" + i + "\" value=\"YES\" checked=\"false\" type=\"radio\">YES</input>");
surveytable.Append("<input id=\"rdoNo" + i + "\" name=\"yes_no_na" + i + "\" value=\"NO\" checked=\"false\" type=\"radio\">NO</input>");
surveytable.Append("<input id=\"rdoNa" + i + "\" name=\"yes_no_na" + i + "\" value=\"N/A\" checked=\"true\" type=\"radio\">N/A</input>");
surveytable.Append("</td>");
}
else
{
surveytable.Append("<td class='last' style='width:35%'>");
surveytable.Append("<Textarea id=\"txtComment" + i + "\" type=\"text\" runat=\"server\" style='width:98%; height:100px'></Textarea>");
surveytable.Append("</td>");
}
surveytable.Append("</tr>");
}
}
surveytable.Append("</table>");
div_survey.InnerHtml = surveytable.ToString();
}
else
{
}
}
private void SendNotificationAll(string userId, string subject, string body, string cc, string bcc)
{
try
{
string approvalEmail;
approvalEmail = EmployeeData.GetEmployeeEmailByUserId(userId);
MailHelper mailHelper = new MailHelper();
Utilities util = new Utilities();
mailHelper.SendMailMessage(util.GetValueFromConfigFile("SupportEmail"), approvalEmail, bcc, cc, subject, body);
}
catch (Exception exp)
{
LogManager logHelper = new LogManager(Request.PhysicalApplicationPath.Trim(), "HR Letter Request");
logHelper.LogError("[SendApproverNotification - ]" + exp.Message);
}
}
private void AlertMessage(string message)
{
string strScript;
strScript = "<script language=javascript>alert('" + message + "');</script>";
Page.RegisterClientScriptBlock("key", strScript);
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
DateTime datetime1, datetime2;
datetime1 = DateTime.Now;
datetime2 = datetime1.AddSeconds(1);
string request_no = Request["requestid"];
var m = Database.GetSurveyId(request_no);
string survey_id = m.survey_id.ToString();
Database.UpdateHRLetterSurveyMasterData(request_no, "2");
Database.RegisterHRLetterSurveyHistory(survey_id, hInitiatorUserId.Value, datetime1.ToString(), "C", datetime2.ToString(), "Survey Completed");
string peoplelinkUserId = GeneralData.GetCountryPeoplelink("1");
Database.RegisterHRLetterHistory(request_no, peoplelinkUserId, datetime1.ToString(), "E", datetime2.ToString(), "Survey Completed");
string messageid;
messageid = GeneralData.InsertMessage(request_no, peoplelinkUserId, "Survey Request[" + request_no + "]", "inbox", "0", "0", "HRLetter", DateTime.Now.ToString(), "1").ToString();
GeneralData.InsertMessageHistory(messageid, "inbox", DateTime.Now.ToString());
Utilities util = new Utilities();
SendNotificationAll(peoplelinkUserId, "Survey Request[" + request_no + "]", "<span style=\"font-family: Arial; font-size:12px\">Dear PeopleLink, <br /><br />Survey Request is completed.<br /><br />Click the link below for more details:<a href='http://" + util.GetValueFromConfigFile("ServerIPAll").ToString() + "/ArabiaHRLetterSurveyForm.aspx?requestid=" + request_no + "&surveyid=" + survey_id + "<br /><br />Thank you<br/>", "", "");
AlertMessage("Survey Request Completed");
Response.Redirect(Page.ResolveUrl("~/HRLetter\\Arabia\\ArabiaHRLetterSurveyForm.aspx?userid=" + hUserIdEncrypted.Value + "&requestid=" + request_no));
}
}