Передача значения в скрытый ввод с помощью jQuery - PullRequest
0 голосов
/ 28 февраля 2011

У меня есть связка ссылок с идентификаторами 1 - n, и я хочу передать этот идентификатор скрытому вводу в моей форме (у меня есть многочисленные ссылки, но я хочу иметь только одну форму, а не генерировать тысячи дополнительных строк HTMLсделать форму для каждого удостоверения личности).

Ссылка выглядит так:

<a href='javascript:$("#removeSave").submit()' id="n">Remove</a>

Форма со скрытым вводом выглядит так:

<form action="/php/removeSave.php" method="POST" id="removeSave">
    <input type="hidden" name="ID" value=""/>
</form>

Любая помощь?

Ответы [ 2 ]

2 голосов
/ 28 февраля 2011

Устанавливает значение скрытого input с идентификатором ID равным id элемента a перед отправкой form.

<a href='#' id='n' onclick='$("#ID").val(this.id);$("#removeSave").submit();'>Remove</a>


<form action="/php/removeSave.php" method="POST" id="removeSave">
    <input type="hidden" name="ID" id="ID" value=""/>
</form>
0 голосов
/ 28 февраля 2011

Вы не предоставили полный контекст ссылки «Удалить», в которой будет указан идентификатор, поэтому я предполагаю формат, и вы можете адаптировать его оттуда.

<!-- HTML //-->

<!-- Format for Each Element. "123" is the ID here //-->
<div id="element123">
  This is Element 123 (ID#123)
  <a href="/php/removeSave.php?ID=123">Remove</a>
</div>

<!-- The Form at the Bottom of the Page //-->
<form id="removeSave" method="POST" action="/php/removeSave.php">
  <input type="hidden" name="ID" value="" />
</form>

Сегмент jQuery

<script type="text/javascript">
$(document).ready(function(){

 // Clicks of Links starting with "/php/removeSave.php?ID="
  $('a[href^="/php/removeSave.php?ID="]').click(function(e){
   // Don't let the Link act as a basic link
    e.preventDefault();
   // Get the Link HREF attribute
    href = $(this).attr('href');
   // Derive the Form ID and ID Value
    bits = href.match(/^\/php\/([^\.]+)\.php\?ID=(\d+)/);
    formID = bits[1];
    elementID = bits[2];
   // Set the Field Values and Submit the Form
    $form = $('#'+formID);
    $form.find('input[name="ID"]').val(elementID);
    $form.submit();
  });

});
</script>

Преимущества этого метода?

Изящная деградация - до тех пор, пока ваши PHP-скрипты также могут обрабатывать переменные GET, если эта страница загружается из браузера, в котором не включен Javascruipt, или не может загрузить jQuery, нажатие на ссылки «Удалить» все равно будет работать ожидаемое действие.

Возможность для AJAX-индикации - вместо всех других действий в разделе .click(function(e){ вы можете использовать функцию $.post() jQuery и сегмент строки запроса HREF ссылки, чтобы передать этот запрос прямо обработчику и манипулировать страница без перезагрузки на всю страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...