我正在尝试将复选框转换为可以使用我的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");
}
});
它不能正常工作。正如我之前所说的,复选框每次都是否为。
答案 0 :(得分:0)
您可以获取复选框的值以了解是否已选中此复选框:
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("")
});
}