Поиск в поле ввода для ввода ключа [дубликат]

Почему бы не попробовать это?

Код Swift для вызова внутри класса:

  self.mainFrame.reload ()  

или внешний вызов

  myWebV.mainFrame.reload ()  
279
задан abatishchev 14 June 2012 в 21:05
поделиться

18 ответов

Попробуйте:

<input type="submit" style="position: absolute; left: -9999px"/>

Это приведет к нажатию кнопки waaay влево, вне экрана. Хорошая вещь с этим - вы получите грациозное ухудшение при отключении CSS.

Обновление - обход для IE7

Как было предложено Брайаном Даунинг + с помощью tabindex, чтобы предотвратить вкладку нажмите эту кнопку (Ates Goral):

<input type="submit" 
       style="position: absolute; left: -9999px; width: 1px; height: 1px;"
       tabindex="-1" />
211
ответ дан LihO 15 August 2018 в 16:18
поделиться
  • 1
    Просто попробовал это решение в IE7 с тем же результатом, что и Erebus. Следующий код исправляет это: position: absolute; width: 1px; height: 1px; left: -9999px; – Bryan Downing 3 November 2010 в 02:01
  • 2
    Какой ужасный взлом :( Почему именно HTML в первую очередь? Есть ли веские причины для входа, чтобы не работать в этом случае? – nornagon 10 April 2011 в 08:40
  • 3
    @nornagon: Если вы чувствуете, что этот хак ужасен, не стесняйтесь предлагать менее страшный. HTML - это то, что он ... – Ates Goral 10 April 2011 в 22:07
  • 4
    @MooseFactory tabindex="-1" – Ates Goral 13 July 2012 в 17:04
  • 5
    «Хорошая вещь - ... грациозная деградация при отключении CSS»?! Я имею в виду, что это отлично работает, но «грациозная деградация» часть - это просто маркетинговая тактика. Я даже не слышал об этом, пока не нашел эту страницу с 2002 года . Правильно, результат only Google на первой странице для "css отключен в браузере" от 10 лет назад (или 7, учитывая, что этот ответ был поставлен в 2009 году). – Vicky Chijwani 20 January 2013 в 20:31

Решение HTML5

<input type="submit" hidden />
0
ответ дан Andrew Luca 15 August 2018 в 16:18
поделиться

Другое решение без кнопки отправки:

HTML

<form>
  <input class="submit_on_enter" type="text" name="q" placeholder="Search...">
</form>

jQuery

$(document).ready(function() {

  $('.submit_on_enter').keydown(function(event) {
    // enter has keyCode = 13, change it if you want to use another button
    if (event.keyCode == 13) {
      this.form.submit();
      return false;
    }
  });

});
23
ответ дан damoiser 15 August 2018 в 16:18
поделиться
  • 1
    Странный трюк. Чтобы вы ввели свою кнопку в текстовое поле! Но так как трюк работает для всех браузеров, я зачислил вас! – Jenna Leaf 17 May 2016 в 13:49
  • 2
    спасибо @JennaLeaf ;-) Во всяком случае, я думаю, что это не так странно - много онлайн-форм используют, поскольку представляют просто "запуск" от нажатия клавиши. Примером может служить панель поиска google (возможно, они не используют именно этот код, но, вероятно, что-то подобное). – damoiser 17 May 2016 в 14:13

Используйте следующий код, это устранило мою проблему во всех трех браузерах (FF, IE и Chrome):

<input  type="submit" name="update" value=" Apply " 
    style="position: absolute; height: 0px; width: 0px; border: none; padding: 0px;"
    hidefocus="true" tabindex="-1"/>

Добавить строку выше в качестве первой строки в вашем коде с соответствующим значением имени и значения .

13
ответ дан Erik Funkenbusch 15 August 2018 в 16:18
поделиться

Вы также можете попробовать это

<INPUT TYPE="image" SRC="0piximage.gif" HEIGHT="0" WIDTH="0" BORDER="0">

Вы можете включить изображение с шириной / высотой = 0 px

2
ответ дан Hoodai 15 August 2018 в 16:18
поделиться
  • 1
    ВАЖНО: вы ДОЛЖНЫ использовать действительный URL-адрес изображения, или Firefox покажет «Отправить запрос», текст на вашей странице – PH. 12 December 2012 в 18:45
  • 2
    Если вы добавляете существующее изображение и устанавливаете высоту и ширину в ноль или добавляете несуществующий образ, браузер должен будет выполнить потраченный впустую запрос GET для ресурса. – pwdst 12 May 2013 в 17:35

Для тех, у кого есть проблемы с IE и другими.

{
    float: left;
    width: 1px;
    height: 1px;
    background-color: transparent;
    border: none;
}
2
ответ дан Jekis 15 August 2018 в 16:18
поделиться
  • 1
    Я бы по-прежнему использовал позицию: абсолютный, float влияет на макет. – SuperDuck 30 April 2014 в 07:50
  • 2
    Похоже, что IE8 не любит позицию: абсолютный, он не отправляет. Я использую: – maxxyme 9 July 2014 в 18:15
  • 3
    То же самое для float: left;, когда удаляется, он отправляет. – maxxyme 9 July 2014 в 18:38

Просто установите для скрытого атрибута значение true:

<form name="loginBox" target="#here" method="post">
    <input name="username" type="text" /><br />
    <input name="password" type="password" />
    <input type="submit" hidden="true" />
</form>
6
ответ дан jumpnett 15 August 2018 в 16:18
поделиться
  • 1
    Скрытый атрибут отключит отправку, нажав enter. – 66Ton99 23 September 2013 в 09:11
  • 2
    @ 66Ton99 Просто тест в FF. Он не отключает подачу – Eugen Konkov 10 January 2017 в 19:13
  • 3
    «он работает на моей машине» ;) есть намного больше браузеров, чем firefox. можно, вероятно, хотеть решение, которое надежно работает в кросс-браузере. – Félix Gagnon-Grenier 12 June 2017 в 20:40
  • 4
    Работает на Chrome 63 – piotr_cz 19 January 2018 в 21:21
  • 5
    – Ulf Adams 21 August 2018 в 13:28

Я использовал

< input class="hidden" type="submit" value="" 
onclick="document.getElementById('loginform').submit()"; />

и

 .hidden {
        border:0;
        padding:0;
        font-size:0;
        width: 0px;
        height: 0px;
    }

в файле .css. Для меня это тоже помогло. :) [/ Д2]

0
ответ дан Mihai Savin 15 August 2018 в 16:18
поделиться

Вместо того, что вы сейчас используете, чтобы скрыть кнопку, было бы гораздо проще установить visibility: collapse; в атрибуте style. Тем не менее, я бы порекомендовал использовать немного простого Javascript для отправки формы. Насколько я понимаю, поддержка таких вещей сегодня повсеместна.

7
ответ дан Noldorin 15 August 2018 в 16:18
поделиться

Для любого, кто смотрит этот ответ в будущем, HTML5 реализует новый атрибут для элементов формы hidden, который автоматически применит display:none к вашему элементу.

например

<input type="submit" hidden />
9
ответ дан Panomosh 15 August 2018 в 16:18
поделиться

Я думаю, что вы должны перейти на маршрут Javascript или, по крайней мере, я:

<script type="text/javascript">
// Using jQuery.

$(function() {
    $('form').each(function() {
        $(this).find('input').keypress(function(e) {
            // Enter pressed?
            if(e.which == 10 || e.which == 13) {
                this.form.submit();
            }
        });

        $(this).find('input[type=submit]').hide();
    });
});
</script>


<form name="loginBox" target="#here" method="post">
    <input name="username" type="text" /><br />
    <input name="password" type="password" />
    <input type="submit" />
</form>
85
ответ дан sanmai 15 August 2018 в 16:18
поделиться
  • 1
    хороший, проверенный и работоспособный. Но прежде чем пытаться что-то подобное, помните, что отправка формы через Javascript не заставит некоторых браузеров предлагать файлы с сохранением пароля. – andyk 26 January 2009 в 12:35
  • 2
    Это заставит кнопку отправки появиться на мгновение (пока страница не загрузится, а JS не запустится). – nornagon 10 April 2011 в 08:34
  • 3
    Клавиша нажата также для выбора из автозаполнения, то есть если пользователь вводит адрес электронной почты, и он / она выбирает ранее предоставленный из автозаполнения браузера, нажав кнопку ввода, тогда ваша форма будет отправлена. Не то, что ожидают ваши пользователи. – cburgmer 11 March 2012 в 12:08
  • 4
    Я переключился на keydown с keypress для более широкой поддержки, но вам также нужно добавить e.preventDefault(); перед if, если вы хотите поддержать Chrome. – Campbeln 9 February 2015 в 03:54
  • 5
    @Campbeln вы можете использовать .on('keypress'...) вместо этого. Документы для .on() выглядят так, как будто вы звоните .preventDefault(). – jinglesthula 18 November 2016 в 23:09

Я добавил его к функции на готовом документе. Если в форме нет кнопки отправки (все мои формы JQuery Dialog не имеют кнопок отправки), добавьте ее.

$(document).ready(function (){
    addHiddenSubmitButtonsSoICanHitEnter();
});
function addHiddenSubmitButtonsSoICanHitEnter(){
    var hiddenSubmit = "<input type='submit' style='position: absolute; left: -9999px; width: 1px; height: 1px;' tabindex='-1'/>";
    $("form").each(function(i,el){
        if($(this).find(":submit").length==0)
            $(this).append(hiddenSubmit);
    });
}
0
ответ дан seePatCode 15 August 2018 в 16:18
поделиться

самый простой способ

<input type="submit" style="width:0px; height:0px; opacity:0;"/>
3
ответ дан Shahin Mammadzada 15 August 2018 в 16:18
поделиться

Вы пробовали это?

<input type="submit" style="visibility: hidden;" />

Поскольку большинство браузеров понимают visibility:hidden, и это не работает как display:none, я предполагаю, что все должно быть хорошо. Я действительно не тестировал его, поэтому CMIIW.

71
ответ дан strager 15 August 2018 в 16:18
поделиться
  • 1
    Да - это работает на хроме, в отличие от использования дисплея: none ;. – Gary van der Merwe 25 March 2011 в 10:30
  • 2
    в visibility: hidden есть только одна вещь: поскольку вы можете читать в w3schools , visibity: none все еще влияет на макет. Если вы хотите избежать этого пробела, решение с абсолютным позиционированием кажется мне лучше. – loybert 28 September 2012 в 16:32
  • 3
    Вы можете комбинировать оба решения: <input type="submit" style="visibility: hidden; position: absolute;" /> – VaclavSir 11 December 2013 в 16:27
  • 4
    Черт возьми, это не работает в IE8 (он не отправляет форму), поэтому решение сверху выигрывает: position: absolute; left: -100px; width: 1px; height: 1px; – VaclavSir 11 December 2013 в 17:27
  • 5
    Я просто протестировал display:none;, и он отлично работает. – Maciej Szpakowski 22 May 2016 в 06:51
<input type="submit" style="display:none;"/>

Это работает отлично, и это самая явная версия того, чего вы пытаетесь достичь.

Обратите внимание, что существует разница между display:none и visibility:hidden для других элементов формы .

0
ответ дан Unheilig 15 August 2018 в 16:18
поделиться

Это мое решение, протестированное в Chrome, Firefox 6 и IE7 +:

.hidden{
    height: 1px;
    width: 1px;
    position: absolute;
    z-index: -100;
}
4
ответ дан vjnrv 15 August 2018 в 16:18
поделиться
  • 1
    Похоже, что IE8 не любит позицию: абсолютный, он не отправляет. – maxxyme 9 July 2014 в 18:18

Самый элегантный способ сделать это - сохранить кнопку отправки, но установите ее границу, заполнение и размер шрифта на 0.

Это сделает размеры кнопки 0x0.

<input type="submit" style="border:0; padding:0; font-size:0">

Вы можете попробовать это самостоятельно, и, установив контур элемента, вы увидите точку, которая является внешней границей «окружения» элемента 0x0 px.

Нет необходимости в видимости : скрытый, но если он заставляет вас спать по ночам, вы можете бросить его и в миксе.

JS Fiddle

5
ответ дан Waltur Buerk 15 August 2018 в 16:18
поделиться

IE не позволяет нажимать клавишу ENTER для отправки формы, если кнопка отправки не видна, а в форме больше одного поля. Дайте ему то, что он хочет, предоставив прозрачное изображение размером 1x1 пиксель в качестве кнопки отправки. Конечно, это займет пиксель макета, но посмотрите, что вам нужно сделать, чтобы скрыть его.

<input type="image" src="img/1x1trans.gif"/>
5
ответ дан Winston Tamblyn 15 August 2018 в 16:18
поделиться
Другие вопросы по тегам:

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