Да, я думаю, что это разрешимо: вместо того, чтобы думать о регулярных выражениях как подходящих строках, вы также можете думать о них как о генерации строк. То есть все строки, которые они будут соответствовать.
Пусть [R] - множество строк, порожденных регулярным выражением R. Тогда для регулярных выражений R и T мы можем попытаться сопоставить T с [R]. Это [R] соответствует T, если в [R] есть строка, которая соответствует T.
. Должно быть возможно разработать это в алгоритм, где [R] лениво строится по мере необходимости: где нормальный регулярный выражение будет пытаться сопоставить следующий символ с входной строкой, а затем перейти к следующему символу в строке, модифицированный алгоритм будет проверять, может ли FSM, соответствующий входному регулярному выражению, генерировать соответствующий символ в его текущем состоянии, а затем продвигается вперед к «всем следующим состояниям» одновременно.
Значение по умолчанию для атрибута type
элементов button
"отправить". Установите для него значение type = "button"
, чтобы создать кнопку, которая не отправляет форму.
<button type="button">Submit</button>
По словам стандарта HTML : «Ничего не делает».
Да, можно заставить кнопку не отправить форму путем добавления атрибута типа кнопки значения: <button type="button"><button>
Просто используйте старый добрый HTML:
<input type="button" value="Submit" />
Оберните его как тему ссылки, если хотите:
<a href="http://somewhere.com"><input type="button" value="Submit" /></a>
Или, если вы решите, что хотите, чтобы javascript предоставлял некоторые другие функции:
<input type="button" value="Cancel" onclick="javascript: someFunctionThatCouldIncludeRedirect();"/>
Элемент кнопки
по умолчанию имеет тип submit
.
Вы можете заставить его ничего не делать, установив тип кнопки
:
<button type="button">Cancel changes</button>
Честно говоря, мне нравятся другие ответы. Легко и не нужно углубляться в JS. Но я заметил, что вы спрашивали о jQuery. Итак, для полноты картины в jQuery, если вы вернете false с помощью обработчика .click (), это отменит действие виджета по умолчанию.
См. Здесь пример (и другие полезности). Вот и документация .
вкратце, с вашим примером кода сделайте следующее:
<script type="text/javascript">
$('button[type!=submit]').click(function(){
// code to cancel changes
return false;
});
</script>
<a href="index.html"><button>Cancel changes</button></a>
<button type="submit">Submit</button>
В качестве дополнительного преимущества вы можете избавиться от тега привязки и просто использовать кнопку.