使用jQuery,我附加文本框如下: -
$.each(myDataJSON, function (index, value)
{
var newRow = "<tr><td><input type='text' class='txtBox' value="+value.Price+"/></td></tr>";
$('#myTable').append(newRow);
})
现在追加行后,会呈现所需的html。现在我将模糊事件与这些文本框相关联,如下所示: -
$(document).on('blur','.txtBox',function(e)
{
var newTextValue = $(this).val();
console.log(newTextValue);//this throws below error
//Uncaught TypeError: Cannot read property 'toLowerCase' of undefined
});
但是,如果我尝试修补它。然后上面的错误消失,但它没有反映新的更新值,而是旧值。仅对于第一个动态添加的文本框,它会提供新的更新值,但不会提供其他文本框。
$(document).on('blur','.txtBox',function(e)
{
var newTextValue = $('.txtBox').val();
console.log(newTextValue);//no error
});
奇怪的是,当我在检查窗口中检查html时,没有更新任何文本框值。
我的问题是
另外, 是否有除焦点/模糊之外的任何事件,以便我可以获取更新的文本框值,当用户离开文本框时,无论是否等待文本框外的点击事件
答案 0 :(得分:0)
尝试手动执行该功能时失败“,因为您有不同的this
。事件指向调用者
你必须做
$(document).on('blur','.txtBox',function(e)
{
var newTextValue = $(e.target).val();
});
答案 1 :(得分:0)
此代码适用于我(记录正确的值):
<html>
<body>
<table id = "myTable">
</table>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
var newRow = "<tr><td><input type='text' class='txtBox' value='1.1'/> </td></tr>";
$('#myTable').append(newRow);
var newRow1 = "<tr><td><input type='text' class='txtBox' value='1.2'/></td></tr>";
$('#myTable').append(newRow1);
$(document).on('blur','.txtBox',function(e)
{
var newTextValue = $(this).val();
console.log(newTextValue);//this throws below error
//Uncaught TypeError: Cannot read property 'toLowerCase' of undefined
});
</script>
</html>
也许您应该检查是否还有其他问题?
答案 2 :(得分:0)
include_once('../conexion.php');
$equipoida = $_POST['equipoida'];
$desde = $_POST['desde'];
$hasta = $_POST['hasta'];
$fechas = "SELECT horatrabajo.idequipo, CONCAT(equipo.nombre,' ',equipo.modelo,' ',equipo.marca) AS flota, horatrabajo.horastrab, horatrabajo.fecha FROM horatrabajo INNER JOIN equipo ON horatrabajo.idequipo = equipo.idequipo WHERE horatrabajo.idequipo = $equipoida AND fecha BETWEEN $desde AND $hasta ORDER BY fecha ASC";
$stmtfechas = $DB_con->query($fechas);
$filasfechas =$stmtfechas->fetchAll();
if (empty($filasfechas))
{
$resultado = "No hay Fechas Disponibles!";
}
foreach ($filasfechas as $filaflo)
{
print $filaflo['idequipo'].' '.$filaflo['horastrab'].' '.$filaflo['fecha'];
}