2012-06-29 75 views
0

我有html表單,其中有可能是這樣的:如何正確處理空的,錯過的默認表單值?

(1)用戶輸入沒有任何內容,例如在文本輸入字段的情況下;

<input type="text" class="input-xlarge" id="first-name" name="first-name"> 

(2)用戶離開默認空值,比如用選擇:

<select id="prof-area" class="input-xlarge"> 
    <option value="0" selected="selected"></option> 

(3)用戶離開空值,比如與多個選項中進行選擇:

<select multiple="multiple" id="reason" name="reason" class="input-xlarge"> 
    <option value="001">reason001</option> 
    <option value="002">reason002</option> 

在每GAE方面的情況我應該明白,這是空值。

first_name = None 
if self.request.get('first-name'): 
    first_name = self.request.get('first-name') 

適用於案例(1)。

prof_area = None 
if self.request.get('prof-area') and self.request.get('prof-area') !='0': 
    prof_area = self.request.get('prof-area') 

應該適用於情況(2),但看起來不太好。有沒有更好的方法來處理相同的問題?

回答

0

除非已添加required=True參數,否則不需要所有這些工作。如果您將一個實體遺失了一些財產,GAE會創建或更新遺失財產的實體。看到這個docs

0

你的prof-area字段沒有名字參數,這就是你在服務器上看不到數據的原因。

不管怎麼說,試試這個...

在客戶端,只是把一個空字符串在空選擇選項,如:

<select id="prof-area" name="prof-area" class="input-xlarge"> 
    <option value="" selected="selected"> -- select -- </option> 
</select 

然後在服務器,首先抓住所有的值到本地變量 - 使得它更容易給別人看怎麼回事...

first_name = self.request.get('first_name') 
prof_area = self.request.get('prof-area') 
reason = self.request.get('reason') 

就可以檢查每個PARAM反過來...

if first_name: 
    # do something with first_name 

if prof_area: 
    # do something with prof_area 

if reason: 
    # do something with reason 
相關問題