Как уже указывалось, $(this).attr('action')
всегда относится к атрибуту action
самой формы, поскольку это элемент, для которого определено ваше событие.
Что вы можете сделать сами, так это проверить formaction
из document.activeElement
, что дает вам элемент, который в данный момент сфокусирован. Если он не определен, вы возвращаетесь к самому действию формы.
Демо:
$('#myForm').on('submit', function (e) {
e.preventDefault();
var url = $(document.activeElement).attr('formaction') || $(this).attr('action');
console.log(url);
});
ОБНОВЛЕНИЕ: Как @basZero, сказанный в его комментарии, начиная с Lucene 2.9, можно добавить числовые поля к документам. Просто не забудьте использовать NumericRangeQuery вместо RangeQuery, когда Вы будете искать.
Lucene рассматривает числа как слова, таким образом, их порядок является алфавитным:
0
1
12
123
2
22
Это означает, что для Lucene, 12 между 0 и 2. Если Вы хотите сделать надлежащий числовой диапазон, необходимо индексировать дополненные нулем числа, то сделать поиск диапазона [0000 К 0002]. (Для объема дополнения Вас нужно, зависит от ожидаемого диапазона значений).
Если у Вас есть отрицательные числа, просто добавьте другой нуль для неотрицательных чисел. (РЕДАКТИРОВАНИЕ: НЕПРАВИЛЬНО НЕПРАВИЛЬНО НЕПРАВИЛЬНО. Посмотрите обновление),
Если Ваши числа включают дробную часть, оставляют ее, как, и нулевая клавиатура целая часть только.
Пример:
-00002.12
-00001
000000
000001
000003.1415
000022
ОБНОВЛЕНИЕ: Отрицательные числа немного хитры, с тех пор-1 прибывает прежде-2 в алфавитном порядке. Эта статья дает полное объяснение о контакте с отрицательными числами и числами в целом в Lucene. В основном необходимо "закодировать" числа во что-то, что заставляет порядок пунктов иметь смысл.
Я создал функцию PHP, которая преобразует числа в доступные для поиска lucene / solr диапазоны.
0,5
преобразуется в 10000000000,5
-0,5
преобразуется в 09999999999,5
function luceneNumeric($numeric)
{
$negative = $numeric < 0;
$numeric = $negative ? 10000000000 + $numeric : $numeric;
$parts = explode('.', str_replace(',', '.', $numeric));
$lucene = $negative ? 0 : 1;
$lucene .= str_pad($parts[0], 10, '0', STR_PAD_LEFT);
$lucene .= isset($parts[1]) ? '.' . $parts[1] : '';
return $lucene;
}
Кажется, работает, надеюсь, это кому-то поможет!