【问题标题】:get textbox value from ajax datatable从 ajax 数据表中获取文本框值
【发布时间】:2018-07-12 07:58:19
【问题描述】:

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

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

【问题讨论】:

  • 在循环中,您为每个input 包含id 属性。这是行不通的,因为id 在每个标签中都必须是唯一的。请改用class 属性。
  • 好的,让我尝试改变
  • @david 仍然无法正常工作。
  • 我只是指出了错误。我上面的评论并不意味着解决你的问题。
  • 好的,谢谢你的建议。

标签: jquery ajax datatable onblur


【解决方案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());
    });
});   

【讨论】:

  • 它可以使用此代码$('body').on('blur', '.movie_id', function() { console.log(this.value); });
  • 但不知道传递 id 和数量等参数。
【解决方案2】:

你的功能是错误的。我使用了$('body'),因为如果您使用 ajax 动态生成元素,委托事件应该在最近的静态元素处。

$('body').on('blur', '#movie_id', function(){
 console.log(this.val());
});

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多