Получить идентификатор текущего поля с помощью jquery - PullRequest
0 голосов
/ 20 декабря 2011

Я работаю над формой, и мне нужно написать jQuery, который получит текущий идентификатор поля ввода.

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

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

Var test = $(this).attr('id');

Но это не работает.

Ответы [ 6 ]

3 голосов
/ 20 декабря 2011

Простой this.id будет работать нормально.

2 голосов
/ 20 декабря 2011

Предполагая, что ваша заглавная буква была опечаткой, это должно сработать, если вы поместите ее в обработчик события щелчка:

$('input').click(
    function(){
        var test = $(this).attr('id');
        /* or, preferably to my mind, in plain JavaScript:
        var test = this.id;
        */
        console.log(test); // show the variable in the JavaScript console
        alert(test); // alerts the variable
    });

Причина, по которой я предлагаю обернуть это в обработчик события click,или любой другой в этом отношении, просто дать контекст для this (или версии jQuery this: $(this)), из которой можно извлечь id.

1 голос
/ 20 декабря 2011

Первый «Var» должен быть var

Во-вторых. Вы должны реализовать это в событии изменения

var test;
$(document).ready(function() {
  $(myinputfieldselector).change(function() {
    test = this.id;
  });
})

Наконец-то. Я бы сказал более конкретно, но для этого вам нужно будет указать соответствующий код.

0 голосов
/ 20 декабря 2011

Всем привет и большое спасибо за вашу помощь.

Я наконец нашел способ сделать с этим кодом, который является смесью всех ваших входных данных:

$("form").live("nested:fieldAdded", function() { //to listen to the new added line event
$('.ip').blur( //launching the function when the user enters something in the input field 
function(){
var test = this.id; //Get the id of the current field
var pattern = /[0-9]+/; //Only conserve the numeric part of it
var  intRegex = test.match(pattern);
var string = ('pinvoice_pinvlines_attributes_new_'+ intRegex +'_montant_HTVA'); //Build the string id
var a = document.getElementById(test).value //Get the value of the inputed field by the user
document.getElementById(string).value = a; //Finaly copy the value of the field in a new one using his specific id build with the STRING variable
});
});
0 голосов
/ 20 декабря 2011

Простым решением было бы поместить класс на входы, которые вы хотите, чтобы это поведение. Вот пример:

<div id="choose-record-number">
    <input type="text" class="ip" id="number-records" value="50" />
    <input type="text" class="ip" id="record-type" />
    <input type="submit" class="ip" id="view-records" value="Visualizar" />
</div>
<div id="show"></div>

Далее, в jQuery, просто добавьте слушатель во вставленный класс. Этот слушатель будет «активирован», когда любой вход сфокусирован на:

$(".ip").focus(
function() {
    $("#show").html($(this).attr('id'));
});

Внутри функции доступ к $(this) даст вам текущий выбранный вход.

0 голосов
/ 20 декабря 2011

Где выполняется ваш код?Это при отправке формы?Когда текст вводится в поле?

Если вы хотите выбрать все входные данные из вашей формы, вы можете написать

inputElements = $("#idOfFormElement").find("input");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...