2013-08-22 144 views
0

我綁採用asp javascript來實現HTML表單的服務器端驗證,和我遇到了一些意想不到的behavior..my ASP和HTML代碼在傳統的ASP訪問表單數據如下:使用服務器端JavaScript

<% 
var bread = String(Request.Form("bread")); 
if (!bread) 
    Response.Write("Choose a bread!"); 
%> 
<br/> 

    <select id="breadDropDown" name="bread"> 
     <option value=""></option> 
     <option value="white">white</option> 
     <option value="wheat">wheat</option> 
     <option value="flatbread">flatbread</option> 
    </select> 

</div> 

這裏我得到了我想要的行爲,就是GET沒有寫入任何內容,並且在無效POST上寫入錯誤。

<% 
var meat = String(Request.Form("meat")); 
if (!meat) 
    Response.Write("Choose a meat!"); 
%> 
<br/> 

    <input type="checkbox" name="meat" value="turkey">turkey</input><br /> 
    <input type="checkbox" name="meat" value="ham">ham</input><br /> 
    <input type="checkbox" name="meat" value="roast beef">roast beef</input><br /> 
    <input type="checkbox" name="meat" value="double meat">double meat</input><br /> 

</div> 

然而,當我使用一組複選框,而不是一個選擇框我越來越不正確behavior..i.e。沒有錯誤正在寫入。

任何洞察將是有幫助的,因爲沒有足夠的資源爲classis ASP與JavaScript,我可以找到。

謝謝!

+0

'Request.Form(「肉」)'可能是一個集合/數組。你試過調試一下'String(Request.form(「肉」))'的樣子嗎? – Passerby

回答

0

的Request.Form(「肉」)會給你不確定

請求(「肉」)會給你在一個逗號分隔字符串檢查字符串(例如火雞,火腿)

0

我一直認爲你需要在你的輸入標籤上添加一個表單標籤。

<form name='frmFood' id='frmFood' method='post'> 
<input or select> 
</form> 
+0

表單之外的輸入標籤是有效的,格式良好的HTML。見http://www.w3.org/TR/html401/interact/forms.html#h-17.2.1 – Fiddles