2012-03-15 55 views
0

我有一个使用PHP动态生成的表。该表有几个文本框用于根据行更新数据库。这个问题可以参考:Complete question,基于一个为我正在使用JavaScript的答案,当输入按下时获取文本字段值。正在使用的JavaScript是:获取动态生成的文本域的值

$("#details input").live('keypress', function (e) { 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if (code == 13) { 
     e.preventDefault(); 
     var ourId = $(this).id; 
     var updatedText = $(this).val; 

     alert(updatedText); 
    } 
}); 

但是出于某种原因$(this)没有返回预期的结果。

任何帮助将不胜感激,谢谢。

+0

你是什么意思'不返回预期的结果?警报是否打印错误的值? – 2012-03-15 20:01:44

+0

对不起,我无法获得文本字段的ID,使用'val()'的值现在可用! – Namit 2012-03-15 20:03:21

回答

0

你在那里混合的概念。 $(this).id --> this.id OR $(this).attr('id')$(this).val --> $(this).val()。不建议使用live(),而是使用on()进行委派。

$("#details").on('keypress', 'input', function(){ 
    // Bla 
}); 
+0

我之前使用过,但是由于字段是动态生成的,所以我不得不使用'live()' – Namit 2012-03-15 20:04:14

+0

您需要使用事件代表形式的'on()'像我发布的。你可以在JQ API上阅读它 – elclanrs 2012-03-15 20:05:58

+0

这仍然不适用于on()' – Namit 2012-03-15 20:09:28

4

val是一种方法,而不是属性,所以它应该像一个函数一样使用。

变化$(this).val$(this).val()

而获得输入元素的ID只使用this.idid是dom elemdnt的财产。

+0

价值现在正常工作,但ID是不确定的? :s – Namit 2012-03-15 20:02:16

+0

'id'只是使用'this.id' – ShankarSangoli 2012-03-15 20:02:45

相关问题