从html,javascript和aspx发送电子邮件时,复选框不会转换

时间:2015-08-20 19:41:50

标签: javascript html asp.net contact-form

我正在尝试将复选框转换为可以使用我的asp.net代码通过电子邮件发送的字符串。下面的代码是将Jquery脚本重写为ASP.net,工作正常。但是,如下面的代码所述,转换为字符串函数正在转换文本字段和复选框。表单未转换复选框。它总是将它们带入,即使在检查时也是如此。

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

   <input name="" id="check1" type="checkbox"><label for="check1"></label>
   <input type="hidden" value="false" name="check1" />

   <input name="" id="check2" type="checkbox"><label for="check2"></label>                                          
   <input type="hidden" value="false" name="check2" />

   <input name="" id="check3" type="checkbox"><label for="check3"></label>
   <input type="hidden" value="false" name="check3" />

我很确定它与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 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("") 
                       });
              }

以下是我实施的附加复选框Jquery代码:

function checkboxse()
            {
                 $('#check1').change(function checkboxse(){
                      if($(this).is(":checked"))
                         {
                             $('#txt_check1').val("true");
                         }
                      else
                         {
                             $('#txt_check1').val("false");
                         }
                 });

                 $('#check2').change(function checkboxse(){
                      if($(this).is(":checked"))
                         {
                             $('#txt_check2').val("true");
                         }
                      else
                         {
                             $('#txt_check2').val("false");
                         }
                 });

                 $('#check3').change(function checkboxse(){
                      if($(this).is(":checked"))
                         {
                             $('txt_check3').val("true");
                         }
                      else
                         {
                             $('txt_check3').val("false");
                         }
                 });

它不能正常工作。正如我之前所说的,复选框每次都是否为。

1 个答案:

答案 0 :(得分:0)

您可以获取复选框的值以了解是否已选中此复选框:

http://jsfiddle.net/7yLx8o81/

document.getElementById('check3').checked

编辑: 为了适应您的代码,您可能希望删除function checkboxes的代码并在函数sendmailse内删除:

function sendmailse() {
    $.post('formsend.aspx', { 
        ch: 4,
        field1: $("#f1").val(),
        field2: $("#f2").val(),
        field3: $("#f3").val(),
        field4: $("#f4").val(),
        checkbox1: "\"" + document.getElementById('check1').checked + "\"",
        checkbox2: "\"" + document.getElementById('check2').checked + "\"",
        checkbox3: "\"" + document.getElementById('check3').checked + "\"",
        comments: $("#comments").val() 
    }, 
    function (data) {                       
           $("#f1").val("");
           $("#f2").val("");
           $("#f3").val("");
           $("#f4").val("");
           // remove because unused
           /* $("#txt_check1").val("");
           $("#txt_check2").val("");
           $("#txt_check3").val(""); */
           $("#comments").val("") 
       });
}