2012-11-13 60 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屬性。