具有许多按钮的jQuery调用具有不同参数的函数

时间:2019-09-16 19:53:30

标签: javascript php jquery ajax

我有一个简单的代码,但无法获取输入文本的值。有什么办法吗?

<?php

    for ($i=0;$i<3;$i++){
        echo ('<input type="text" class="form-control" name="vec" id="vec'.$i.'" value="'.$listOfData0[$i].'">');
        echo ('<input type="text" class="form-control" name="drv" id="drv'.$i.'" value="'.$listOfData1[$i].'">');
        echo ('<button type="button" name="updateVecButton" id="updateVecButton" value="'.$vec[$i].','.$vell[$i].'" onclick="refreshVec("'.$i.'","'.$vell[$i].'");"></button>');
    }
?>

<script>
function refreshVec(i,vell){
    alert (i + " "+ vell);
    var value0 = $("#vec"+i).val();
    var value1 = $("#drv"+i).val();
    alert (value0 + " " + value1);
}

</script>

4 个答案:

答案 0 :(得分:0)

您还通过在onclick属性中使用双引号来使HTML乱码。您应该在生成的HTML中看到它。

尝试

echo ('<button type="button" name="updateVecButton" id="updateVecButton" value="'.$vec[$i].','.$vell[$i].'" onclick="refreshVec(\''.$i.'\',\''.$vell[$i].'\');"></button>');

代替

echo ('<button type="button" name="updateVecButton" id="updateVecButton" value="'.$vec[$i].','.$vell[$i].'" onclick="refreshVec("'.$i.'","'.$vell[$i].'");"></button>');

答案 1 :(得分:0)

您应该以输入数组的形式进行调用。喜欢,

  echo('<input type="text" class="form-control" name="vec[]" id="vec'.$i.'" value="'.$listOfData0[$i].'">');
  echo('<input type="text" class="form-control" name="drv[]" id="drv'.$i.'" value="'.$listOfData1[$i].'">');
  echo('<button type="button" name="updateVecButton[]" id="updateVecButton" onclick="refreshVec("'.$i.'","'.$vell[$i].'");"/>'.$vec[$i].','.$vell[$i].'</button>');

将name =“ vec”和name =“ drv”更改为name =“ vec []”和name =“ drv []”

在您的( onclick="refreshVec("'.$i.'","'.$vell[$i].'");

您应该更改为

onclick="refreshVec(\''.$i.'\',\''.$vell[$i].'\');

我认为,原因是您传递带有字符串值的参数。

答案 2 :(得分:0)

我不知道为什么,但是refreshVec( " 2" ,"2")之间存在空格。

这将使字符串像" 2"而不是"2"

这就是为什么ID选择器选择包含该空格的错误ID,而您没有得到预期的输出的原因

我已更正它并且现在可以正常工作:

echo '<button onclick="refreshVec(\''.$i.'\',\''.$vell[$i].'\');">'.$vec[$i].','.$vell[$i].'</button>';

注意:按钮没有value之类的属性。您应该将文字放在<button>标签内

答案 3 :(得分:0)

我的解决方法是

$(this).prop("value");

.val()是另一回事。感谢您的支持。