2013-03-07 3 views
0

Насколько я знаю, это невозможно, и если это не явное ограничение jquery.Одна из форм HTML - две кнопки отправки - это ограничение jquery?

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

Один из подходов состоит в том, чтобы использовать click (function(), но при этом вы лишаетесь доступа к любым полям формы, и вы не можете ссылаться на форму. Фактически, этот подход использует ссылку, которая представляется формой, но не так!

Мне кажется, что такая базовая потребность, как это не может быть поддержана. У форм часто есть две опции отправки ... например, «Отправить» и «Изменить». Либо варианты требуют другого действия при представлении, представлены данные форм пользователя? Как это может не быть?

Благодаря

+1

Это очень возможно обнаружить, какая кнопка была использована ... – Passerby

+0

как так, если вы обнаружения кнопку отправки формы, а не простым нажатием кнопки? – user2056238

+0

Если вам нужно 2 кнопки отправки, ваш пользовательский интерфейс, вероятно, ошибочен. Кнопка «Сохранить» просто берет данные входного поля и сохраняет их где-то, а кнопка «Редактировать» открывает новую редактируемую форму, в которой вы можете редактировать данные, а затем сохранять их. – cen

ответ

0

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

$('#btn1').click(function() { $('#field1').doSomething() }); 
$('#btn2').click(function() { $('#field1').doSomething() }); 
1

Просто пример.

<form action="action.php" method="post"> 
Enter a number: <input type="text" name="number" size="3"> <br> 
<input type="submit" name="add" value="Add 10"> 
<input type="submit" name="subtract" value="Subtract 10"> 
</form> 

<?php 

// check which button was clicked 
// perform calculation 
if ($_POST['add']) 
{ 
    echo $_POST['number'] . " + 10 = " . ($_POST['number']+10); 
} else if ($_POST['subtract']) { 
    echo $_POST['number'] . " - 10 = " . ($_POST['number']-10); 
} 

?> 
0

Я сделал простой тест на моем сервере:

<form method="POST" action="/test/post.php" target="_blank" id="form"> 
    <input type="search" name="q" value="WTF" /> 
    <input type="submit" name="b1" value="Search" /> 
    <input type="submit" name="b2" value="Find" /> 
</form> 
<button type="button" onclick="id('form').submit();">Go</button> 

post.php просто print_r($_POST);. Результат выглядит следующим образом:

  • Пресс Search:

    Array 
    (
        [q] => WTF 
        [b1] => Search 
    ) 
    
  • Пресс Find:

    Array 
    (
        [q] => WTF 
        [b2] => Find 
    ) 
    
  • Press [Enter] в <input type="search">:

    Array 
    (
        [q] => WTF 
        [b1] => Search 
    ) 
    
  • Используйте <button> снаружи:

    Array 
    (
        [q] => WTF 
    )