2012-06-11 76 views
0

我想改變動態創建html單選按鈕在asp.net中使用jQuery的選中屬性。我嘗試了不同的方法,但我無法更改屬性。如何更改jquery中動態創建的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)); 

    } 
} 
+0

你可以請你提供一個jsfiddle的例子代碼。它使解決您的問題變得更容易。 – iappwebdev

回答

0

我得到了解決自己。我需要在屬性之前添加冒號,例如attr函數中的:checked

0

這看看將切換收音機,只需更換選擇器:

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

Demo

+0

我試過你的代碼。它會切換,但不會更改html代碼中的屬性。我想在代碼中添加它。以便我可以在其他功能中閱讀它。 –

+0

如果您的其他功能也檢查相同的屬性,它將能夠讀取它。 –

相關問題