Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.09.2019, 18:54
Новичок на форуме
Отправить личное сообщение для karnager Посмотреть профиль Найти все сообщения от karnager
 
Регистрация: 14.06.2019
Сообщений: 4

Получение значения элемента form action ="..."
Здравствуйте! Подскажите, пожалуйста, как можно с помощью JS или jQuery получить значение элемент в атрибуте form action.

Например, у меня есть несколько форм на сайте и у них разные action:

<form action="call2/5" method="post" class="bp">
<form action="order2/5" method="post">
<form action="order/5" method="post">
<form action="order/5" method="post">
<form action="order/5" method="post">
<form action="call" method="post">
<form action="feedback" method="post">

Мне необходимо получить: call2/5, order2/5, order/5 и т.д. Хочу записать значение отдельно в переменную. Спасибо!

Последний раз редактировалось karnager, 07.09.2019 в 19:06.
Ответить с цитированием
  #2 (permalink)  
Старый 07.09.2019, 19:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 26,633

karnager,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    $(document).on("click", "form", function() {
    alert(this.getAttribute("action"));
});
});
  </script>
</head>

<body>
<form action="call2/5" method="post" class="bp">test click</form>
 <form action="order2/5" method="post">test click</form>
 <form action="order/5" method="post">test click</form>
 <form action="order/5" method="post">test click</form>
 <form action="order/5" method="post">test click</form>
 <form action="call" method="post">test click</form>
 <form action="feedback" method="post">test click</form>
 </body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 07.09.2019, 19:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 26,633

karnager,
тоже самое на js.
document.addEventListener("click", function(event) {
var target = event.target.closest("form");
if(target) alert(target.getAttribute("action"))
})
Ответить с цитированием
  #4 (permalink)  
Старый 07.09.2019, 20:15
Новичок на форуме
Отправить личное сообщение для karnager Посмотреть профиль Найти все сообщения от karnager
 
Регистрация: 14.06.2019
Сообщений: 4

Спасибо, если это заключено в функцию, то как сделать для нее замыкание, то есть что нужно вернуть в конструкции после return?
Ответить с цитированием
  #5 (permalink)  
Старый 07.09.2019, 20:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 26,633

karnager,
не понимаю.
Ответить с цитированием
  #6 (permalink)  
Старый 07.09.2019, 21:17
Новичок на форуме
Отправить личное сообщение для karnager Посмотреть профиль Найти все сообщения от karnager
 
Регистрация: 14.06.2019
Сообщений: 4

В моем случае реализация должна удовлетворять 2 условиям:

1. Скрипт должен быть обернут в анонимный функциональный блок ( function() { ... }).

2. Функция должна иметь оператор return.

Моя задача получать значение form action на всем сайте без каких-либо кликов и взаимодействий с формой, просто список
Ответить с цитированием
  #7 (permalink)  
Старый 07.09.2019, 22:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 26,633

karnager,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>


</head>

<body>
<form action="call2/5" method="post" class="bp">test click</form>
 <form action="order2/5" method="post">test click</form>
 <form action="order/5" method="post">test click</form>
 <form action="order/5" method="post">test click</form>
 <form action="order/5" method="post">test click</form>
 <form action="call" method="post">test click</form>
 <form action="feedback" method="post">test click</form>
<script>

document.write(( function(selector) { return [...document.querySelectorAll(selector)].map(form => form.getAttribute("action")) })("form"));

  </script>
 </body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 08.09.2019, 00:06
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,152

Сообщение от karnager
Мне необходимо получить: call2/5, order2/5, order/5 и т.д. Хочу записать значение отдельно в переменную... просто список
Вариант №1. Значение атрибута
<form action="call2/5" method="post" class="bp"></form>
<form action="order2/5" method="post"></form>
<form action="order/5" method="post"></form>
<form action="order/5" method="post"></form>
<form action="order/5" method="post"></form>
<form action="call" method="post"></form>
<form action="feedback" method="post"></form>
<script>

// список атрибутов action всех форм
var actions = Array.from(document.querySelectorAll("form"), form => form.getAttribute("action"));

// например, вывод списка
document.write(actions.join("<br>"));

</script>


Вариант №2. Вычисленное значение атрибута
<form action="call2/5" method="post" class="bp"></form>
<form action="order2/5" method="post"></form>
<form action="order/5" method="post"></form>
<form action="order/5" method="post"></form>
<form action="order/5" method="post"></form>
<form action="call" method="post"></form>
<form action="feedback" method="post"></form>
<script>

// список атрибутов action всех форм
var actions = Array.from(document.querySelectorAll("form"), form => form.action);

// например, вывод списка
document.write(actions.join("<br>"));

</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как установить значения поле name для каждого элемента формы autofan jQuery 0 27.07.2014 09:57
Получение значения динамически созданного элемента skeef jQuery 3 21.06.2014 16:45
получение значения из классов karmis Events/DOM/Window 1 14.10.2011 18:09
Получение значения соседнего элемента Max Tretyakov Events/DOM/Window 2 27.06.2011 21:01
Получение стиля элемента. BreatheInTheVoid Элементы интерфейса 4 01.05.2010 16:25