2014-07-03 48 views
0

我有一個Python文件validity.py。在該文件中,我有以下功能: -如何隱藏和取消隱藏的HTML文本框按Dropbox的選擇 - HTML,Python的

def login(): 
    return ''' 
    <body bgcolor="#FFDEAD"> 
    <form action="/login" method="post"> 
     <img src='http://%s:%s/login/guavusLogo.png'> 
     <h1>Validity</h1><br> 
     <h2> Configuration Parameters</h2><br> 
     <table> 
     <tr> 
     <tr><td><lable>Chose from the following</td><td> <select name="options"> 
      <option value="unhide">unhide</option> 
      <option value="hide">hide</option> 
     </select></td><tr> 
     <td>Start Date: </td><td><input name="startDate" type="text" /></td></tr> 
     <tr><td>End Date:</td><td> <input name="endDate" type="text" /></td></tr> 
     </table> 
     <input value="Submit" type="submit" /> 
    </form> 
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"> 
    $("select").change(function() { 
    if ($("select option:selected")[0].value == 'unhide') { 
      $("[name='startDate']").show(); 
      $("[name='endDate']").show(); 
    } 
    else { 
      $("[name='startDate']").hide(); 
      $("[name='endDate']").hide(); 
     } 
    }); 
    </script> 
    <script type="text/javascript" src="%s:%s/login/validate.min.js"></script> 
    </body> 
''' %(host,port,host,port) 

def yes(): 
... 
... 
do something 
... 
... 

def no(): 
... 
... 
do something 
... 
... 

def do_login(): 
    startDate = request.forms.get('startDate') 
    endDate = request.forms.get('endDate') 
    callOptions = request.forms.get('options') 
    paramList = [startDate, endDate, callOptions] 
    if '' in paramList or None in paramList: 
      return "<p>Insufficient Arguments Entered. Please enter all the arguments mentioned in the config page</p>" 
    else: 
      if callOptions == "yes": 
        yes() 
      elif callOptions == "no": 
        no() 

run(host=host, port=port, debug=True) 

do_login() 

不要擔心,我如何把服務器上的網頁,因爲已照顧已經全部。我希望當我在服務器上加載頁面時,如果在下拉框中選擇「否」,並且如果選擇「是」,則取消隱藏它們,我希望隱藏文本字段startTime和endTime。

因此,在do_login()函數中,如果條件如果callOptions ==「no」,那麼它會調用指定的函數,但我希望文本字段隱藏和其他方式。

任何幫助? 感謝

回答

0

使用jQuery(你似乎已經被使用),你可以在客戶端上做到這一點,而無需任何服務器端處理。

這應該在不改變你的HTML工作:

<script> 
$("select").change(function() { 
    if ($("select option:selected")[0].value == 'hide') { 
     $("[name='startDate']").hide(); 
     $("[name='endDate']").hide(); 
    } else { 
     $("[name='startDate']").show(); 
     $("[name='endDate']").show(); 
    } 
}); 
</script> 

而且,它應該是<label>,不<lable>,你應該關閉該標籤。

+0

我編輯過。但仍然沒有工作?這是對的嗎? – sam

+0

我認爲它不能獲取jquery min.js文件。 – sam

+0

您需要關閉腳本標記,即''。你還需要在'$(「select」)行之前添加一個開始腳本標籤。change(function()' – mhawke