我现在已经有这个问题了一段时间,无论我做什么,我似乎无法解决它。 基本上,我的输入没有检索用户出于某种原因在输入中键入的值。
这是我的代码:
$('#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> 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();
但这也不起作用。
我真的希望有人可以帮助我!
答案 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);
});
解释:
delegate()
方法附加一个或多个事件处理程序,用于指定元素作为所选元素的子元素,并指定在事件发生时运行的函数
使用delegate()
方法附加的事件处理程序适用于当前和 FUTURE元素(就像脚本创建的新元素一样)。