Разница между и

нет такой вещи как глупый вопрос, так что здесь мы идем: в чем разница между <input type='button' /> и <input type='submit' />?

8 ответов


<input type="button" /> кнопки не будут отправлять форму - они ничего не делают по умолчанию. Они обычно используются в сочетании с JavaScript как часть приложения AJAX.

<input type="submit"> кнопки будут отправлять форму, в которой они находятся, когда пользователь нажимает на них, если вы не укажете иное с помощью JavaScript.


"кнопка" - это просто кнопка, к которой Вы можете добавить дополнительную функциональность с помощью Javascript. Тип ввода "отправить" имеет функциональность по умолчанию отправки формы, в которую он помещен (хотя, конечно, вы все равно можете добавить дополнительные функции с помощью Javascript).


кнопка не будет отправлять форму самостоятельно.Это простая кнопка, которая используется для выполнения некоторых операций с помощью javascript, тогда как Submit-это своего рода кнопка, которая по умолчанию отправляет форму всякий раз, когда пользователь нажимает на кнопку отправки.


IE 8 фактически использует первую кнопку, которую он встречает, или кнопку отправки. Вместо того, чтобы легко указывать, что желательно, сделав его типом ввода=отправить заказ на странице, на самом деле значительно.


следует также упомянуть, что именованный ввод типа= "отправить"также будет отправлен вместе с именованными полями другой формы, а именованный тип ввода=" кнопка " не будет.

другими словами, в приведенном ниже примере, названном вход name=button1 НЕ вам представить названные вход name=submit1 будет вам представлены.

пример HTML-формы (индекс.HTML-код):

<form action="checkout.php" method="POST">

  <!-- this won't get submitted despite being named -->
  <input type="button" name="button1" value="a button">

  <!-- this one does; so the input's TYPE is important! -->
  <input type="submit" name="submit1" value="a submit button">

</form>

скрипт PHP (checkout.PHP), что процесс выше действие формы:

<?php var_dump($_POST); ?>

Проверьте вышеизложенное на локальном компьютере, создав два файла в папке с именем / tmp/ test/, а затем запустив встроенный веб-сервер PHP из оболочки:

php -S localhost:3000 -t /tmp/test/

откройте браузер на http://localhost:3000 и сами все увидите.

интересно, почему нам нужно отправить именованную кнопку? Это зависит от внутреннего сценария. Например, плагин WooCommerce WordPress не будет обрабатывать страницу оформления заказа если Place Order именованная кнопка также отправлена. Если вы измените его тип из отправить to тогда эта кнопка не будет отправлена, и, таким образом, форма проверки никогда не будет обработана.

это, вероятно, небольшая деталь, но вы знаете, дьявол в деталях.


<input type="button"> может использоваться в любом месте, а не только в форме, и они не отправляют форму, если они находятся в одном. Гораздо лучше подходит с Javascript.

<input type="submit"> следует использовать только в формах, и они отправят запрос (GET или POST) на указанный URL-адрес. Они должны!--6-->не быть помещен в любом месте HTML.


W3C делает его ясным, на спецификации о элементе кнопки

Button можно рассматривать как общий класс для всех типов кнопок без поведения по умолчанию.

консорциума W3C


type='Submit' установлено в forward & get значения на BACK-END (PHP, .NET и т. д.). type='button' будет отражать нормальное поведение кнопки.