0

我正在尝试使用 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));

    }
}
4

3 回答 3

1

使用道具:

$("input[value='YES']").prop('checked', false);

链接:http ://api.jquery.com/prop/

也看看.prop() 与 .attr()

于 2012-06-11T11:50:50.210 回答
0

这将切换收音机,只需更换选择器:

$("button").click(function() {
    $("input[type=radio]").attr('checked', !$("input[type=radio]").attr('checked'));
});

演示

于 2012-06-11T11:56:08.150 回答
0

我自己得到了解决方案。我需要在属性之前添加一个冒号,即:checked在 attr 函数中。

于 2012-06-14T11:37:10.267 回答