如何使用Jquery和ASP.net将复选框转换为字符串以进行发布?

我正在尝试将复选框转换为可以使用我的asp.net代码通过电子邮件发送的字符串。 下面的代码使用Jquery脚本将html表单转换为ASP.net,工作正常。 但是,表单不会转换复选框。 即使在检查时,它总是将它们带入“否”。 除此之外,表格完美无缺。 它发送电子邮件很好,所有其他字段工作正常。

这是与复选框相关的HTML代码。

      

我很确定它与JQUERY和/或ASP.net代码有关。

 Case 4 Contact Form Response.Write(sendMailSE(Convert.ToString(Request.Form("name")), Convert.ToString(Request.Form("field1")), Convert.ToString(Request.Form("field2")), Convert.ToString(Request.Form("field3")), Convert.ToString(Request.Form("field4")), Convert.ToString(Request.Form("checkbox1")), Convert.ToString(Request.Form("checkbox2")), Convert.ToString(Request.Form("checkbox3")), Convert.ToString(Request.Form("comments")))) Public Function sendMailSE(ByVal field1, ByVal field2, ByVal field3, ByVal field4, ByVal checkbox1, ByVal checkbox2, ByVal checkbox3, ByVal comments) As String Try Const ToAddress As String = "jdoe@abcd.com" '(1) Create the MailMessage instance Dim mm As New System.Net.Mail.MailMessage("jdoe@abcd.com", ToAddress) 'create cocantenated string for body of message Dim sb As StringBuilder = New StringBuilder() '(2) Assign the MailMessage's properties mm.Subject = "Contact Us: " sb.Append("Contact Us: " + vbCrLf) sb.Append("----------------------------------" + vbCrLf) sb.Append("Date " + DateTime.Now() + vbCrLf) sb.Append("Field1: " + field1 + vbCrLf) sb.Append("Field2:" + field2 + vbCrLf) sb.Append("Field3: " + field3 + vbCrLf) sb.Append("Field4: " + field4 + vbCrLf) sb.Append("Checkbox1 " + IIf(checkbox1, "Yes", "No") + vbCrLf) sb.Append("Checkbox2 " + IIf(checkbox2, "Yes", "No") + vbCrLf) sb.Append("Checkbox3 " + IIf(checkbox3, "Yes", "No") + vbCrLf) sb.Append("Comments: " + comments + vbCrLf) 

我已删除此行下面的代码,因为它不重要。

这是我发布的函数的JQUERY代码:

 function check() { $('#check1').change(function check(){ if($(this).is(":checked")) { $('#txt_check1').val("true"); } else { $('#txt_check1').val("false"); } }); $('#check2').change(function check(){ if($(this).is(":checked")) { $('#txt_check2').val("true"); } else { $('#txt_check2').val("false"); } }); $('#check3').change(function check(){ if($(this).is(":checked")) { $('txt_check3').val("true"); } else { $('txt_check3').val("false"); } }); } function sendmailse() { $.post('RequestForms/sendmail.aspx', { ch: 4, name: $("#sename").val(), filer: $("#filer").val(), filingagent: $("#filingagent").val(), phone: $("#sephone").val(), email: $("#seemail").val(), checkbox1: $("#txt_check1").val(), checkbox2: $("#txt_check2").val(), checkbox3: $("#txt_check3").val(), comments: $("#secomments").val() }, function (data) { $("#sename").val(""); $("#filer").val(""); $("#filingagent").val(""); $("#sephone").val(""); $("#seemail").val(""); $("#txt_check1").val(""); $("#txt_check2").val(""); $("#txt_check3").val(""); $("#secomments").val("") }); } 

它还没有工作。 正如我之前所说,除了复选框之外,所有其他字段都正常工作。 表格电子邮件很好,但复选框每次都显示为“否”。 如果你看看我的asp和jquery代码,那里肯定会出现问题。

如果未勾选复选框,则可能不会提交值。 我在之前的项目中通过添加隐藏的输入字段解决了这个问题,当复选框为true时,这些字段会被覆盖。

    

更新值:在javascript代码中使用Jquery控制

  

检查和文本的输入ID和名称必须是不同的,在您的情况下,它看起来像这样:

        

你的函数应该得到txt的值:

  function sendmailse() { $.post('formsend.aspx', { ch: 4, field1: $("#f1").val(), field2: $("#f2").val(), field3: $("#f3").val(), field4: $("#f4").val(), checkbox1: $("#txt_check1").val(), checkbox2: $("#txt_check2").val(), checkbox3: $("#txt_check3").val(), comments: $("#comments").val() }, function (data) { $("#f1").val(""); $("#f2").val(""); $("#f3").val(""); $("#f4").val(""); $("#txt_check1").val(""); $("#txt_check2").val(""); $("#txt_check3").val(""); $("#comments").val("") }); }