2012-06-29 42 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 
相关问题