首页 > 解决方案 > 单击 JQuery 时未捕获的 ReferenceError

问题描述

我无法从按钮中获取值

这个未捕获的 ReferenceError:reply_click 未在 HTMLInputElement.onclick 中定义

注意:我希望我的按钮继续工作!

谁能帮我 ?

  function reply_click(clicked_id){
$(function() {
    $.ajaxSetup({
       headers: {
          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
       }
    });
    console.log('attached');
    $('#openButton').on('click', function(data) {
        console.log('clicked');
        $.ajax({
          type: "POST",
          url: "/dash",
            data: { _token: $('meta[name="csrf-token"]').attr(('src','{{url('/')}}'+data)}
        })
       .done(function(data){
            console.log(data);
            $('.inputbutton input').css("background-image", "url("+data+")");
        })
        .fail(function(data){
            console.log('Error:', data);
        });
    });
});

}

我来自 Blade.php 的按钮

<div class="inputbutton">
<span class="text">TEXT</span>
<input type="submit" class="btTxt submit" value=""  id="TEXT" onclick="reply_click(this.id)">
</div>

标签: javascriptjqueryhtmlajaxlaravel-5

解决方案


我认为使用 onclick 不是一个好习惯,除了你应该把你的函数放在$(function() {})里面

所以是这样的:

$(function() {
    function reply_click(clicked_id){
        // DO SOMETHING HERE
        ....
    }
});

还可以考虑将 onclick 更改为使用$('#TEXT').click(function() {....})

所以总的来说,去掉onlclick,所有的代码应该是这样的:

$(function() {
    function reply_click(clicked_id){
        // DO SOMETHING HERE
        ....
    }

    $('#TEXT').click(function() {
        // ON CLICK ACTIONS GO HERE
        var input_id = $(this).attr('id'); // for example getting the id of the input
        ....
    })
});

推荐阅读