Как отправить форму, когда клавиша Return нажимается?

Есть ли у вас представление о ожидаемом выходе? Напр. это будет?

>>> f  = FileItem("/foo/bar")
>>> magic(f)
'{"fname": "/foo/bar"}'

В этом случае вы можете просто называть json.dumps(f.__dict__).

Если вам нужен более индивидуальный вывод, вам придется подклассы JSONEncoder и реализовать свою собственную сериализацию.

Для тривиального примера см. ниже.

>>> from json import JSONEncoder
>>> class MyEncoder(JSONEncoder):
        def default(self, o):
            return o.__dict__    

>>> MyEncoder().encode(f)
'{"fname": "/foo/bar"}'

Затем вы передаете этот класс в метод json.dumps() как cls kwarg:

json.dumps(cls=MyEncoder)

Если вы также хотите декодировать, вам нужно будет поставить пользовательский object_hook в класс JSONDecoder . Например,

>>> def from_json(json_object):
        if 'fname' in json_object:
            return FileItem(json_object['fname'])
>>> f = JSONDecoder(object_hook = from_json).decode('{"fname": "/foo/bar"}')
>>> f
<__main__.FileItem object at 0x9337fac>
>>> 

83
задан Marco Demaio 7 May 2014 в 16:00
поделиться

7 ответов

IMO, это - самый чистый ответ:

<form action="" method="get">
  Name: <input type="text" name="name"/><br/>
  Pwd: <input type="password" name="password"/><br/>
  <div class="yourCustomDiv"/>
  <input type="submit" style="display:none"/>
</form>

Еще лучше при использовании JavaScript для представления формы с помощью пользовательского отделения, необходимо также использовать JavaScript, чтобы создать его и установить стиль display:none на кнопке. Таким образом, пользователи с отключенным JavaScript будут все еще видеть кнопку отправки и могут нажать на него.

<час>

было отмечено, что display:none заставит IE игнорировать вход. Я создал новый пример JSFiddle , который запускается как стандартная форма и использует прогрессивное улучшение, чтобы скрыть отправление и создать новое отделение. Я действительно использовал моделирование CSS от StriplingWarrior.

55
ответ дан Community 24 November 2019 в 08:45
поделиться

Я думаю, что у Вас должны на самом деле быть кнопка отправки или отправлять изображение... У Вас есть определенная причина использования, "отправляют отделение"? Если Вы просто хотите пользовательские стили, я рекомендую <input type="image".... http://webdesign.about.com/cs/forms/a/aaformsubmit_2.htm

0
ответ дан palotasb 24 November 2019 в 08:45
поделиться

При использовании asp.net, можно использовать атрибут defaultButton на форме.

0
ответ дан Corin Blaikie 24 November 2019 в 08:45
поделиться

Почему Вы только не подаете заявку, отделение отправляют стили кнопке отправки? Я уверен, что существует JavaScript для этого, но это было бы легче.

0
ответ дан Ross 24 November 2019 в 08:45
поделиться

Используйте следующий сценарий.

<SCRIPT TYPE="text/javascript">
<!--
    function submitenter(myfield,e)
    {
        var keycode;
        if (window.event) keycode = window.event.keyCode;
        else if (e) keycode = e.which;
        else return true;

        if (keycode == 13)
        {
            myfield.form.submit();
            return false;
        }
        else
            return true;
    }
//-->
</SCRIPT>

Для каждого поля, которое должно отправить форму, когда пользователь совершает нападки, вводят, вызывают submitenter функцию следующим образом.

<FORM ACTION="../cgi-bin/formaction.pl">
    name:     <INPUT NAME=realname SIZE=15><BR>
    password: <INPUT NAME=password TYPE=PASSWORD SIZE=10
       onKeyPress="return submitenter(this,event)"><BR>
<INPUT TYPE=SUBMIT VALUE="Submit">
</FORM>
6
ответ дан Bill the Lizard 24 November 2019 в 08:45
поделиться

Вот то, как я делаю это с jQuery

j(".textBoxClass").keypress(function(e)
{
    // if the key pressed is the enter key
    if (e.which == 13)
    {
        // do work
    }
});

, Другой JavaScript не слишком отличался бы. выгода проверяет на аргумент нажатия клавиши "13", который является клавишей Enter

7
ответ дан Sean Chambers 24 November 2019 в 08:45
поделиться

Для представления формы, когда клавиша Enter нажимается, создают функцию JavaScript вдоль этих строк.

function checkSubmit(e) {
   if(e && e.keyCode == 13) {
      document.forms[0].submit();
   }
}

Тогда добавляют событие к любому объему, в котором Вы нуждаетесь, например, на теге Div:

<div onKeyPress="return checkSubmit(event)"/>

Это - также поведение по умолчанию Internet Explorer 7 так или иначе хотя (вероятно, более ранние версии также).

84
ответ дан Kaspar Lee 24 November 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: