Вы можете добавить атрибут min
или max
в input type=date
. Дата должна быть в формате ISO (yyyy-mm-dd). Это поддерживается во многих мобильных браузерах и текущих версиях Chrome, хотя пользователи могут вручную вводить недопустимую дату без использования datepicker.
Атрибуты min
и max
должны быть полной датой; нет способа указать «сегодня» или «+0
». Для этого вам необходимо использовать JavaScript или серверный язык:
var today = new Date().toISOString().split('T')[0];
document.getElementsByName("somedate")[0].setAttribute('min', today);
http://jsfiddle.net/mblase75/kz7d2/
Реализация только сегодня, при разрешении прошлых или будущих дат, здесь не вариант. Однако если вы хотите, чтобы завтра вы были min
датой (гаснет сегодня и все прошлые даты), см. этот вопрос , чтобы увеличить today
на один день.
Как и во всех других случаях, связанных с формами HTML, вы всегда должны проверять полевую серверную сторону независимо от того, как вы ограничиваете ее на стороне клиента.
.findAll()
возвращает список всех найденных элементов, поэтому:
inputTag = soup.findAll(attrs={"name" : "stainfo"})
inputTag
- это список (возможно, содержащий только один элемент). В зависимости от того, что именно вам нужно, вы должны либо сделать:
output = inputTag[0]['value']
либо использовать метод .find()
, который возвращает только один (первый) найденный элемент:
inputTag = soup.find(attrs={"name": "stainfo"})
output = inputTag['value']
Я использую это с Beautifulsoup 4.8.1 для получения значения всех атрибутов класса определенных элементов:
from bs4 import BeautifulSoup
html = "<td class='val1'/><td col='1'/><td class='val2' />"
bsoup = BeautifulSoup(html, 'html.parser')
for td in bsoup.find_all('td'):
if td.has_attr('class'):
print(td['class'][0])
Его важное, чтобы отметить, что ключ атрибута получает список, даже когда атрибут имеет только единственное значение.