jQuery从输入中获取值不起作用

时间:2014-03-04 23:31:14

标签: jquery html

我的网站上有一些输入类型文本,当我点击我网站上的某些<span>时,我想从此输入中获取(读取)一个值。当我点击带有id=1的范围时,我想从class=1

的输入中获取值

我写了那个脚本,但这只取得第一次输入的值?为什么不是其他? (对不起我的英文)?

$("span.button-kopia-make").click(function() {
            var clickID = $(this).attr("id");
            var ileloop = $("input[name=\'ileinputowbudujemy\'][class=+clickID]").val();

            for (var i = 1; i < ileloop; i++) {
            $(\'<p><label for="l_numer">Numer: <input type="text" id="dodany_i_numer" size="8" maxlength="9" name="dodany_i_numer\' + i +\'" value="" /></label></p>\');
            }
    });

3 个答案:

答案 0 :(得分:0)

问题是您需要连接clickID值,而只是将变量名称作为选择器的一部分而不是使用其值。

尝试:

$("span.button-kopia-make").click(function() {
            var clickID = this.id;
            var ileloop = $("input[name='ileinputowbudujemy']." + clickID).val();
                                                           //^__ Class selector
            for (var i = 1; i < ileloop; i++) {
            $('<p><label for="l_numer">Numer: <input type="text" id="dodany_i_numer" size="8" maxlength="9" name="dodany_i_numer' + i + '" value="" /></label></p>');
            }
 });

答案 1 :(得分:0)

Becaue .val()方法将从提供的选择中返回第一个输入元素的值。

尝试在迭代之前将所有值存储在数组中。

下面的内容会让你朝着正确的方向前进

var values = [];
$("span.button-kopia-make").click(function() {
    var clickID = $(this).attr("id");
    var $elements = $("input[name=\'ileinputowbudujemy\'][class=+clickID]");

    $elements.each(function() {
        var elementValue = $(this).value();
        values.push(elementValue);
    });

    for (var i = 1; i < values.length; i++) {
        $(\'<p><label for="l_numer">Numer: <input type="text" id="dodany_i_numer" size="8" maxlength="9" name="dodany_i_numer\' + values[i] +\'" value="" /></label></p>\');
    }
});

类似的小提琴:http://jsfiddle.net/Varinder/NV9j4/

答案 2 :(得分:0)

我相信您正在寻找循环每个输入并使用每个输入的值做一些事情?这可以通过以下代码实现:

$("span.button-kopia-make").click(function() {
    var clickID = this.id;
    $("input." + clickID).each( function() {
        // This function will be called on every matching input
        // Get the value of the input
        var i = $(this).val();
        // Do something with it.
        $('<p><label for="l_numer">Numer: <input type="text" id="dodany_i_numer" size="8" maxlength="9" name="dodany_i_numer' + i + '" value="" /></label></p>');
    });
 });