Как получить индекс ввода в JavaScript - можно использовать jQuery - PullRequest
0 голосов
/ 02 марта 2012

У меня есть массив входных данных, сгенерированных из кода JS.Я установил название входов следующим образом: name="myTextInput[]"

Как получить индекс выбранного входа?

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

 onClick="oc(this);" 

где:

function oc(inp)
{
    return(inp.index);
}

, но не работает.

Я также могу использовать jQuery

Ответы [ 4 ]

3 голосов
/ 02 марта 2012

Вы можете использовать КАЖДУЮ функцию в jquery.Это позволит проанализировать набор подходящих элементов.Вы можете поместить пользовательскую функцию внутри, которая будет использовать индекс каждого элемента, когда вы анализируете, в качестве аргумента.

$('input').each(function(index){
    alert(index);
});

Вы также можете получить значение каждого входа следующим образом:

$('input').each(function(index, val){
    alert(index + ' has value: ' + val);
});

подробности см. Здесь: http://api.jquery.com/jQuery.each/

** EDIT **

Если вы хотите, чтобы значение, отображаемое в окне предупреждения при щелчке, использовало каждую функцию и функцию щелчка вместе.Не забудьте получить значение ввода в реальном времени, используйте $(this).val().Возврат данных индекса и значения при клике:

$('input').each(function(index, val){
    $(this).click(function(){
        alert(index + ' has value: ' + $(this).val());
    });
});
1 голос
/ 02 марта 2012

Вы можете получить ввод, подобный этому (хотя не уверен, что вы действительно хотите событие click) ...

var inputs = $('input[name="myTextInput[]"]');

inputs.click(function() {
    alert(inputs.index(this));
});
0 голосов
/ 02 марта 2012

«Способ jQuery» - избегать onClick="whatever()" и использовать чистый JavaScript отдельно от тегов HTML. Попробуйте это между парой тегов <script> (примечание: требуется jQuery 1.7 или выше):

$('input').on('click', function() {
    var varname = $(this).attr('name'),
        $arr = $('input[name="'+varname+'"]'),
        idx = $arr.index(this);

    alert(idx);
});​

http://jsfiddle.net/mblase75/EK4xC/

0 голосов
/ 02 марта 2012

Пожалуйста, используйте метод index(), чтобы найти положение элемента.

Проверьте этот пример: http://jsbin.com/uyucuv/edit#javascript,html

<ul>
  <li id="foo">foo</li>
  <li id="bar">bar</li>
  <li id="baz">baz</li>
</ul>


$(function() {
  $("li").on("click", function() {
    alert($(this).index());
  });
});

Проверьте документацию index() здесь: http://api.jquery.com/index/

Надеюсь, это поможет!

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