我有一个简单的代码,但无法获取输入文本的值。有什么办法吗?
<?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>
答案 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()是另一回事。感谢您的支持。