2012-11-13 96 views
0

除非不发送textarea的“OtherText”值,否则一切都正常工作。ASP和jQuery电子邮件表单不发送文本区域

HTML:

<label for="ReasonforRMA">Reason for RMA:</label> 
<select name="ReasonforRMA" class="required" id="otherCheck"> 
<option value="">Choose an option</option> 
<option value="Wrong Item">Wrong Item</option> 
<option value="Defective">Defective</option> 
<option value="Unit Damaged">Unit Damaged</option> 
<option value="Other">Other</option> 
</select><br /> 

<label for="OtherText" id="otherLabel">Other Reason:</label> 
<textarea name="OtherText" id="otherText"></textarea><br /> 

的jQuery:

var textarea = $('#otherText'); 
var textlabel = $('#otherLabel'); 
textarea.hide(); 
textlabel.hide(); 

$('#otherCheck').change(function(){ 
     var select = $(this).val(); 
     if (select == 'Other'){ 
      textlabel.show(); 
      textarea.show(); 
     } 
     else { 
      textlabel.hide(); 
      textarea.hide(); 
     } 
}); 

ASP:

<% 
'declare variables 
Dim EmailFrom 
Dim EmailTo 
Dim Subject 
Dim DealerName 
Dim DealerNumber 
Dim InvoiceNumber 
Dim PONumber 
Dim InvoiceDate 
Dim ModelNumber 
Dim SerialNumber 
Dim ReasonforRMA 
Dim OtherText 
Dim ConditionofUnit 

' get posted data into variables 
EmailFrom = Trim(Request.Form("EmailFrom")) 
EmailTo = "[email protected]" 
Subject = "Online RMA Submission" 
DealerName = Trim(Request.Form("DealerName")) 
DealerNumber = Trim(Request.Form("DealerNumber")) 
InvoiceNumber = Trim(Request.Form("InvoiceNumber")) 
PONumber = Trim(Request.Form("PONumber")) 
InvoiceDate = Trim(Request.Form("InvoiceDate")) 
ModelNumber = Trim(Request.Form("ModelNumber")) 
SerialNumber = Trim(Request.Form("SerialNumber")) 
ReasonforRMA = Trim(Request.Form("ReasonforRMA")) 
OtherText = Trim(Request.Form("OtherText")) 
ConditionofUnit = Trim(Request.Form("ConditionofUnit")) 

' prepare email body text 
Dim Body 
Body = Body & "Dealer Name: " & DealerName & VbCrLf 
Body = Body & "Dealer Number: " & DealerNumber & VbCrLf 
Body = Body & "Invoice Number: " & InvoiceNumber & VbCrLf 
Body = Body & "PO Number: " & PONumber & VbCrLf 
Body = Body & "Invoice Date: " & InvoiceDate & VbCrLf 
Body = Body & "Model Number: " & ModelNumber & VbCrLf 
Body = Body & "Serial Number: " & SerialNumber & VbCrLf 
Body = Body & "Reason for RMA: " & ReasonforRMA & VbCrLf 
Body = Body & "Other Text: " & OtherText & VbCrLf 
Body = Body & "Condition of Unit: " & ConditionofUnit & VbCrLf 

' send email 
Dim mail 
Set mail = Server.CreateObject("CDONTS.NewMail") 
mail.To = EmailTo 
mail.From = EmailFrom 
mail.Subject = Subject 
mail.Body = Body 
mail.Send 

' send confirmation 
Dim mailC 
Set mailC = Server.CreateObject("CDONTS.NewMail") 
mailC.To = EmailFrom 
mailC.From = "[email protected]" 
mailC.Subject = "Confirmation of your RMA Submission" 
mailC.Body = "Test Confirmation" 
mailC.Send 

' redirect to success page 
Response.Redirect("complete.html") 
%> 

它发送的一切,但 “OtherText” textarea的价值。我猜它只是一个错字或某个地方,但我什么都看不到!

+0

我不认为这是问题,但作为一个良好的编码问题,你应该在那些形式的HTML字段中对'name'和'id'使用EXACT相同的字符串。这将避免可能的混淆。 – Blazemonger

+0

我猜这是?我改变了我所有的ID以遵循相同的命名方案,现在它工作..谢谢大声笑:) – user7954

回答

2

作为一个良好的编码问题,您应该使用EXACT相同的字符串作为名称和id在那些形式的HTML字段。这将避免可能的混淆。

由于所有原因,ASP有可能(错误地)使用ID属性作为变量名而不是name属性。