1

Uncaught SyntaxError: Unexpected token Error从 切换 到 后,input box我遇到以下问题textarea。提交后尝试删除输入到 textarea 中的文本时会发生此错误。

文本区域:

<textarea name="chatter"></textarea>

函数调用:

<a href='javascript:void(0);' 
 onClick='deletecmnt(this, '".$val['id']."', '".BASE_URL."');' 
  title='Delete Chatter'>X</a>; 

删除功能:

function deletecmnt(obj, cmt_id, baseurl){
    var lg_chk = loginchk();
    if(lg_chk){
        var object = $(obj).parent().parent();
        $.ajax({
            type: "GET",
           // error: function(error){console.log("Error:");console.log(error);},
            url:baseurl+'deletechatter.php?id='+cmt_id,
            dataType:'json',
            success:function(response){
                object.remove();
            }
        });
    }
    else
        location.href=baseurl;
}

好的,所以在 Chrome 中我收到上述错误,但在 Firefox 中我收到以下内容:

 SyntaxError: syntax error      

 deletecmnt(this, 

但是,我看不出它有什么问题,并且在我使用输入框时它起作用了。我什至将它切换回来并且它工作了那么它喜欢的 textarea 是什么?请让我知道我做错了什么。

这是我到目前为止得到的:

<a data-id='".$val['id']."' data-base-url='".BASE_URL."' href='javascript:void(0);' title='Delete Chatter'>x</a>

<script>$("a[title='Delete Chatter']").on('click', deletecmnt);</script>

function deletecmnt(obj, cmt_id, baseurl){
var lg_chk = loginchk();
if(lg_chk){
    var object = $(this).parent().parent();
    $.ajax({
        type: "GET",
       // error: function(error){console.log("Error:");console.log(error);},
        url:baseurl+'deletechatter.php?id='+cmt_id,
        dataType:'json',
        success:function(response){
            object.remove();
        }
    });
}
else
    location.href=baseurl;

}

4

2 回答 2

1

引号是错误的:

onClick='deletecmnt(this, "'.$val['id'].'", "'.BASE_URL.'");' 

看看你如何打开和关闭单引号。

于 2013-02-27T01:50:42.223 回答
1

您过早地关闭撇号:

deletecmnt(this,

...成为整个onclick. 由于您使用的是 jQuery,因此与它绑定会更有意义(即使您不是,我仍然建议使用 JS 进行绑定)。

$("a[title='Delete Chatter']").on('click', deletecmnt);

您可以更新deletecmnt以使其引用this,这将是锚点。此外,更新锚点以将 ID 和 BASE_URL 存储为 DOM 的一部分,可能使用:

<a data-id='".$val['id']."' data-base-url='".BASE_URL."'
于 2013-02-27T01:52:51.797 回答