错误控制台提示“函数未定义”


Error console says "function not defined"

错误控制台显示以下错误:

错误:未定义评审源文件:http://localhost/opencart/index.php?route=information/savingsaccount线:1

 <script type="text/javascript">
 function review(id) {
$.ajax({
alert(id);
        text = $.trim($("#text").val());
        name = $.trim($("#name").val());
        rating = $.trim($("#rating").val());
        url = "savingsreview.php";
        data = "name="+name+"&text="+text+"&rating="+rating;
        result  = $.ajax({
              url: url,
              global: false,
              type: "GET",
              data: data,
              async:false,
              beforeSend: function(){
              },
           }
        ).responseText;
        alert(result);
    }
}); 
}
</script>
<div style="width:540px;" align="center"><a id="displayText"     
href="javascript:toggle(<?php echo $id;?>);">Review & Read Reviews</a></div>
<span id="toggleText<?php echo $id;?>"  style="display: none">

<div class="content">

<label><b>Your Name</b></label> : <input type="text" id="name" name="name" value="" />
<label><b>Your Review</b></label> :<textarea name="text" id="text"  rows="3">  </textarea> 
<label><b>Rating</b></label>
    <input id="rating" type="radio" name="rating" value="1" style="margin: 0;" />
    &nbsp;
    <input type="radio" name="rating" value="2" style="margin: 0;" />
    &nbsp;
 <a onclick="review(<?php echo $id;?>);" class="button"><span>Submit</span></a></td>
</span>

Can anyone help me solve this??

试试这个

function review(id) {
    alert(id);
    var text = $.trim($("#text").val());
    var name = $.trim($("#name").val());
    var rating = $.trim($("#rating").val());
    var url = "savingsreview.php";
    var data = "name=" + name + "&text=" + text + "&rating=" + rating;
    var result = $.ajax({
        url: url,
        global: false,
        type: "GET",
        data: data,
        async: false,
        beforeSend: function() {},
    }).responseText;
    alert(result);

}

有一些垃圾,所以我删除了它,它应该工作(像$.ajax()function review(id) {之后)

review的函数定义被严重破坏。

您通过调用$.ajax并将其传递给看起来像对象字面量的内容开始,直到您到达其中的第一行,此时您似乎正在尝试编写函数。

我建议使用jslint

如果你不想让你的代码在等待响应时冻结(如果你使用async false就会冻结),你应该传入一个成功处理程序,它将在收到响应后被调用,类似于:

function sendAjax() {
    $.ajax({
        // arguments
    },getResponse);
}
function getResponse(response) {
    // deal with what came back
}