Список флажков, прикрепленных к href - PullRequest
0 голосов
/ 05 марта 2012

Я предвожу свой вопрос, заявив, что знаю, что это странный запрос, но, тем не менее, для этого конкретного проекта это сделать нельзя.

У меня есть список из нескольких сотен флажков как часть формы. За пределами формы у меня есть ссылка на отдельную страницу, к которой я хотел бы добавить список отмеченных флажков. Пример:

<form name="sampleForm" method="POST" action="process.php">
    <input type="checkbox" name="checkbox_1" />
    <input type="checkbox" name="checkbox_2" />
    <input type="checkbox" name="checkbox_3" />
</form>

<a href="otherPage.php>Alternate Page</a>

Мне нужно, чтобы, когда кто-то нажимал на ссылку «Альтернативная страница», флажки добавлялись как оператор GET:

otherpage.php?checkbox_1=1&checkbox_2=1

Или что-то в этом роде, любые предложения, которые могли бы решить такую ​​проблему, были бы великолепны. Я не заинтересован в переписывании больших частей кода или замене его кнопкой отправки.

Ответы [ 3 ]

1 голос
/ 05 марта 2012

Я бы попробовал что-то вроде этого:

$('a').click(function(){
  $('form').attr('method', 'GET');
  $('form').attr('action', 'otherPage.php');
  $('form').submit();
});

Если вы добавите идентификаторы на свои поля, вы можете использовать лучшие селекторы jquery.

1 голос
/ 05 марта 2012

Вы можете сделать это, прикрепив javascript к ссылке.Измените HTML на этот:

<a id="otherPageLink" href="otherPage.php>Alternate Page</a>

Добавьте этот javascript:

$("#otherPageLink").click(function() {
    var checkStr = [];
    $("form[name='sampleForm'] input[type='checkbox']").each(function() {
        checkStr.push(this.name + "=" + this.checked ? 1 : 0);
    });
    window.location = this.href + "?" + checkStr.join("&");
    return(false);
});

Это работает следующим образом:

  1. Присоединяет обработчик кликов к ссылке.
  2. Получает все флажки в этой форме
  3. Итерация по каждому флажку, построение строки для каждого на основе его значения и помещение их всех в массив
  4. Получить оригиналURL для ссылки и объедините его со всеми параметрами запроса для флажков и перейдите по этому URL
  5. , верните false, чтобы предотвратить нормальную обработку ссылки
0 голосов
/ 05 марта 2012

строка запроса с использованием этой разметки

<form id="sampleForm" method="POST" action="process.php">
    <input type="checkbox" name="checkbox_1" />
    <input type="checkbox" name="checkbox_2" />
    <input type="checkbox" name="checkbox_3" />
</form>

<a id="alt_page_link" href="otherPage.php">Alternate Page</a>

А это JS

$('#alt_page_link').click(function(){
    var href=$(this).attr('href')+'?'+ $('#sampleForm').serialize();
   $(this).attr('href',href)
})

Значения флажка будут по умолчанию в браузере "вкл" с этим кодом. Предположим, что вы хотите добавить к Alt Page ling и перейти на эту страницу

РЕДАКТИРОВАТЬ демо http://jsfiddle.net/SjwrC/

...