从ajax数据表获取文本框值

时间:2018-07-12 07:58:19

标签: jquery ajax datatable onblur

有人可以帮助我解决从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());
});

但是控制台日志中什么也没有。谢谢

2 个答案:

答案 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());
});