有人可以帮助我解决从ajax数据表获取文本框值的问题吗?下面是我的代码。
我的控制器:
public function getmovielist (Request $request, Response $response)
{
$cart = Cart::where('category', 'action')->get();
$output = [];
foreach($cart as $c) {
$output[] = [
'<input type="number" class="form-control" min="0" id="movie_id" name="qty">',
$c->title,
];
}
return $response->withJson(["data"=>$output]);
}
我的JS脚本(将json响应加载到我的表中)
var ct = $('#movie_table').DataTable({
"ajax": {
url : 'getmovielist',
type : 'GET'
},
});
我的观点
+----------+----------+
| textbox |John wick |
+----------+----------+
| textbox |Deadpool |
+----------+----------+
这是我的代码,可以在模糊时获取文本框的值
$('#movie_id').on('blur', function(){
console.log(this.val());
});
但是控制台日志中什么也没有。谢谢
答案 0 :(得分:1)
我建议使用类选择器而不是id选择器,因为id选择器适用于单个元素。
您可以像下面那样更改代码,然后尝试
foreach($cart as $c) {
$output[] = [
'<input type="number" class="form-control txtmovie" min="0" id="movie_id" name="qty">',
$c->title,
];
}
-----------------------------
$( document ).ready(function() {
$('.txtmovie').on('blur', function(){
console.log(this.val());
});
});
答案 1 :(得分:0)
您的功能有误。我使用$('body')
是因为如果您使用ajax动态生成元素,则委托事件应该在最接近的静态元素上。
$('body').on('blur', '#movie_id', function(){
console.log(this.val());
});