[英]Jquery with many buttons call a function with sending different parameters
我有一个简单的代码,但无法获取输入文本的值。 有什么办法吗?
<?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>
您还可以通过在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>');
您应该以输入数组的形式进行调用。 喜欢,
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].'\\');
我认为,原因是您传递带有字符串值的参数。
我不知道为什么,但是refreshVec(
" 2"
,"2")
之间存在空间。
这使字符串像" 2"
而不是"2"
这就是为什么ID选择器选择了包含该空格的错误ID,而您没有得到预期的输出的原因
我更正了它,现在正在工作:
echo '<button onclick="refreshVec(\''.$i.'\',\''.$vell[$i].'\');">'.$vec[$i].','.$vell[$i].'</button>';
注意 :按钮没有像value
这样的属性。 您应该将文字放在<button>
标记内
我的解决方案是
$(this).prop("value");
.val()是另一回事。 谢谢你的支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.