Javascript цикл с динамическим JQuery Val () не берется - PullRequest
0 голосов
/ 13 декабря 2010

Я пытаюсь выбрать значение поля ввода с помощью jquery.Там нет пробников

$('#id_of_my_input_box_1').val();

Но мне нужно несколько, поэтому решил поместить их в цикл:

=========== *

var config_total_instances = '==some value='

for (var x = 1; x <= config_total_instances; x++) {

    if (isset($('#id_of_my_input_box_'+x).val())) {

        alert($('#id_of_my_input_box_'+x).val());

    }

}

============

Если я отправляю форму и получаю, скажем, 10 полей ввода, приведенный выше код не выводит значение, если соответствующее поле ввода имеетзначение.Я использую функцию ниже для проверки значений.

============

function isset(my_variable) {

    if (my_variable == null || my_variable == '' || my_variable == undefined)

        return false;
    else
        return true;
}

============

Я что-то упускаю из жизни ...?: - (

Добавление: я должен добавить, что спрашиваю, почему я не получаю значение $ ('# id_of_my_input_box _' + x) .val (), которое отображается в моем окне предупреждения

Ответы [ 4 ]

0 голосов
/ 13 декабря 2010

Может быть, я неправильно понимаю, но вы не можете просто получить все <input> в <form>, которые не :empty, если это конечная цель того, что вы пытаетесь достичь? 1004 *

$('form#some_id input:not(:empty)').each(function () {
     // do something with $(this).val() now that you have
     // all the non-empty <input> boxes?
});

Или, если вы просто пытаетесь определить, оставил ли пользователь какое-то значение <input> пустым, что-то вроде:

$('form#some_id').submit(function (e) {
     if ($(this).find('input[type="radio"]:not(:checked), input[type="text"][value=""], select:not(:selected), textarea:empty').length > 0) {
         e.preventDefault(); // stops the form from posting, do whatever else you want
     }
});

http://api.jquery.com/category/selectors/form-selectors/

0 голосов
/ 13 декабря 2010

Расширение ответа @ Faber75.Вы можете установить имя класса для всего вашего текстового элемента, а затем использовать что-то вроде этого

$("input:text.clsname").each(function(){
    if (isset(this.value)) {
        alert(this.value);
    }
});

В вашем текущем коде, если вы назначаете строку для config_total_instances, это не будет работать.

0 голосов
/ 13 декабря 2010

Вы пробовали это? (обратите внимание, что их три =)

if (my_variable === null || my_variable == '' || my_variable === undefined)

В качестве альтернативы этому попробуйте

if (typeof(my_variable) == 'null' || my_variable == '' || typeof(my_variable) == 'undefined')
0 голосов
/ 13 декабря 2010

не считаю мое сообщение ответом, скорее совет.Для более простого кода вы можете подумать о добавлении класса в текстовые поля, которые нужно проверить.Например, добавляя ко всем входным данным, вам нужно проверить class = "sample", вы можете использовать селектор jquery $ (". Sample"), возвращая вам все элементы, а затем вы можете просто сделать $ (". Sample").length для подсчета элементов и $ (". sample") [0] .val () (или аналогичный) для получения / проверки значений.

Cheers

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