文档未检测输入值

时间:2014-09-06 14:32:55

标签: javascript jquery input

我现在已经有这个问题了一段时间,无论我做什么,我似乎无法解决它。 基本上,我的输入没有检索用户出于某种原因在输入中键入的值。

这是我的代码:

$('#aid').one('click', function () { 
    $('.prompt').prepend('<tr class="task"><td class="cell-icon"></td>' +
        '<td class="cell-title"><div>User\'s Object: <input id="inputObject" type="text" style="margin-top: 2px;margin-left:2px"></input>&nbsp;&nbsp; Amount: <input id="inputAmount"' +
        'type="text" style="margin-top:2px;margin-left:2px; padding-right: 0px"></input></div></td>' +
        '<td class="cell-status hidden-phone hidden-tablet"><a class="btn btn-success" style="margin-top:3px">Submit</a></td>' +
        '<td class="cell-time align-right">Just Now</td></div>' +
        '</tr>');
});
$('.btn').click(function () {
    console.log("click");
    var input = document.getElementById('inputObject').value;
    console.log(input);
});

一切正常,包括两次点击,但由于某种原因,它只是不会向控制台显示输入值。

我也尝试过:$('#inputObject').val();但这也不起作用。

我真的希望有人可以帮助我!

2 个答案:

答案 0 :(得分:1)

您正在动态创建HTML代码,请尝试使用:

$(document).on("click",".btn", function(){
    do stuff here... 
});

答案 1 :(得分:1)

另一种方法:使用委托

$('body').delegate('.btn', "click", function() {
   var inp = document.getElementById("inputObject").value;
   console.log(inp); 
});

来自http://www.w3schools.com/jquery/event_delegate.asp

解释

delegate()方法附加一个或多个事件处理程序,用于指定元素作为所选元素的子元素,并指定在事件发生时运行的函数

使用delegate()方法附加的事件处理程序适用于当前和 FUTURE元素(就像脚本创建的新元素一样)。