2010-07-31 2 views
0

Например, у меня есть HTML-форму с несколькими кнопками ввода,Как сделать материал перед отправкой формы?

<form action="/index.php" method="post"> 
<input type="hidden" name="hf" /> 
<input type="submit" id="apply_action" name="action" value="Apply"> 
<input type="submit" id="cancel_action" name="action" value="Cancel"> 

это текущая структура крупного веб-проекта. После нажатия кнопки «Применить» нажимается, она будет привязана к определенной функции PHP на веб-сервере, а затем возвращает некоторый код HTML; конечно, после нажатия «Отмена» он будет сопоставляться с другой функцией PHP.

Теперь я хотел бы добавить материал перед исходным действием отправки при нажатии «Применить». Например: я хотел бы добавить предупреждение javascript («привет»), прежде чем исходное действие отправки будет отправлено на сервер? Я не знаю, как добиться этого с помощью JQuery? Прежде всего, для этой формы есть два действия отправки: value = 'Apply' или 'Cancel', мне нужно дифференцировать действие; Во-вторых, после предупреждения ('hello'), мне все равно нужна оригинальная форма action = 'index.php' для выполнения. Есть ли функция jquery для этой цели? Благодаря!

ответ

4

Похоже, вы хотите связать функцию с событием submit формы. См http://api.jquery.com/submit/

Чтобы установить ваш запрос, это должно работать:

$('form').submit(function(){ 
    alert('hello'); 
    return true; 
    }); 

Добавление:

Хорошо, так как у вас есть две кнопки отправки, вы должны будете использовать click событие.

$(document).ready(function(){ 
    $('input').click(function(ev){ 
    alert(ev.target.id);//this is how you will differentiate between the two buttons. 
     //or, you could bind a separate click event to each one 
    if(ev.target.id=="cancel_action"){ /* etc.. */ } 
    else{ /* etc.. */ } 
    }); 
}); 

Используя любой способ, форма будет отправлена ​​по клику. Как отметил Франсиско Сото, возвращение false предотвратит отправку любого из этих методов. Возврат true (или не указание возвращаемого значения) будет продолжаться с представлением формы.

+0

Прежде всего, для этой формы есть два действия отправки: value = 'Apply' or 'Cancel', мне нужно дифференцировать действие; во-вторых, после предупреждения («привет») мне все еще нужна оригинальная форма action = 'index.php', которая должна быть исключена – WilliamLou

+0

Или верните false, если вы хотите предотвратить отправку формы. –

+0

Что касается вашего второго примечания, форма, как и раньше, передает указанное действие. Вы прочитали документы для отправки или попробовали этот код? – JAL

3

Вы должны использовать метод .click() для кнопки.

$('#apply_action').click(
    function(){ 
    // do your stuff here.. 
    } 
); 
Смежные вопросы