我得到空字符串''或者' undefined'来自.val() - 函数

时间:2015-07-16 06:22:41

标签: javascript jquery html dom

我想要做的是抓住inputstatisPrice-0类的价值,或者写在代码中:

statisPrice-" . $i . "

随着数字的增加0,1,2,3,4...我稍后需要使用此值进行一些数学计算。

我尝试了几种方法来捕捉input的价值,但我得到一个空字符串或undefined。我在这里读过,所有的答案都没有帮助我解决我的问题。

echo "<input type='number' name='qtty-" . $i . "' class='col-md-6' min='" . $good['Ratio'] . "' step='" . $good['Ratio'] . "' value='" . $good['Ratio'] . "'>";
echo "<div class='col-md-3'>";
    echo "<div class='col-md-12'><strong>Цена в лв.</strong></div>";
    // this is the input:
    echo "<input type='hidden' class='statisPrice-" . $i . "' val='" . number_format((float)$good['PriceOut2'] * $good['Ratio'], 3, '.', '') . "'>";
    echo "<div class='col-md-12 price-" . $i . "'>" . number_format((float)$good['PriceOut2'] * $good['Ratio'], 3, '.', '') . "</div>";
echo "</div>";

我的jquery代码是:

$(document).ready(function(){
//change the price
    var thisIsIt = $(this);
     $("input[name*='qtty']").change(function() {
        var val = $(this).val();
        var getName = $(this).attr("name");
        var getNumber = getName.substr(5, 10);
        // this is the code where im trying to catch the input and i tryed several ways and noone of them worked :(
        var price = thisIsIt.find(".statisPrice-" + getNumber).val();
        alert(".statisPrice-" + getNumber);
        alert(price); //outputs empty string ""
        alert(val);
        thisIsIt.find(".price-" + getNumber).text(val * price);
    });
});

我不明白为什么它不能取hidden input的值并进行计算 - &gt; val * price

如果有人可以告诉我我在哪里犯错误,我将感激不尽。

2 个答案:

答案 0 :(得分:1)

你应该使用

$( "input[name^='qtty']" )

而不是使用alert使用console.log

甚至更好地将调试器放在问题位置

var price = $(".statisPrice-" + getNumber).val();

之前的

并检查运行时可用的值。

答案 1 :(得分:1)

正如@dandavis评论中所述,您<input>元素的属性必须是value而不是val

<input ... value=".." />