2014-02-07 4 views
1

У меня есть простая форма html с несколькими кнопками отправки, и я хочу, чтобы мое приложение действовало по-разному в зависимости от того, какая кнопка отправки я нажимаю.Несколько кнопок отправки - привязка текстового поля к отправке кнопки

Пример:

<form method="POST"> 
    <input type="submit" value="test" name="test" /> 
    <input type="text" name="search_query" style="width: 300px; padding: 5px" value="some text"> 
    <input type="submit" value="Search" name="search" /> 
    <input type="text" name="search_query2" style="width: 300px; padding: 5px" value="some text"> 
    <input type="submit" value="Search" name="search2" /> 
    <input type="submit" value="GO" name="next" /> 
</form> 

Это работает для меня, я знаю, как отличить кнопку, которую я нажал. Проблема заключается в том, что если я нажимаю , введите при редактировании текстового поля, после чего будет нажата первая кнопка отправки (одна из них - test). Можно ли сообщить обозревателю (только с HTML-кодом) - все это должно заставить его работать с NO javascript), который я нажал Введите и он должен отправить search с POST, а не test? Итак, есть ли привязка текстового поля к кнопке отправки?

+0

Вы можете перенести первую подачу после отправки 'search' submit? – ediblecode

+0

да, но я могу иметь, например, 3 текстовых ввода и кнопку отправки для каждого из них. –

+0

Тогда нет способа сделать это без дублирования записи ИЛИ javascript – ediblecode

ответ

0

Решение этой проблемы состояло бы в том, чтобы иметь несколько элементов form, включая различные кнопки submit и соответствующие текстовые поля.

Я не могу придумать решение только с одним формулой, но не с Javascript.

+0

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

0

Вы можете переместить тот, который вы хотите быть представлен первый в этом списке, например, так:

<form method="POST"> 
    <input type="text" name="search_query" style="width: 300px; padding: 5px" value="some text"> 
    <input type="submit" value="Search" name="search" /> 
    <input type="submit" value="test" name="test" /> 
    <input type="submit" value="GO" name="next" /> 
</form> 

Но, кажется, что ваш HTML просто плохо образован, я бы рекомендовал Merguez-х answer

С вашего редактирования, нет способа сделать это без Javascript/jQuery.

+0

Он не будет работать для нескольких текстовых входов. –

0

Это не так сложно с PHP. Во-первых: Измените кнопки управления реальными:

становится

<form method="POST"> 
<input type="text" name="search_query" style="width: 300px; padding: 5px" value="some 
text" /> 
<button type="submit" name="actionB" onclick="javascript:checkBtn();" value="Search">Search</button> 
<button type="submit" name="actionB" onclick="javascript:checkBtn();" value="Test">Test</button> 
<button type="submit" name="actionB" onclick="javascript:checkBtn();" value="Go">Go</button> 
</form> 

Теперь, когда форма была отправлена, проверьте возвращаемое значение actionB. Если это «Поиск», соедините URL-адрес поиска с помощью возвращаемого значения search_query.

Нет способа читать переменные, используя только HTML. JavaScript необходим, если вы не собираетесь использовать язык сценариев для этого. Вы можете полностью сделать это на родном JavaScript. JQuery НЕ требуется для этой относительно простой функции.

<script language="JavaScript"> 
function checkBtn() { 
var btnX=document.getElementById("actionB").value; 
if (btnX=="Search") { 
// compose your new URL here 
} 
// repeat for each of the possible buttons 
</script> 

Надеюсь, что помогает несколько! Steve

Смежные вопросы