2012-08-01 100 views
0

我遵循网上开发者课程,其中一个项目是创建一个虚构的股票交易网站。Javascript/JQuery - Chrome意外令牌

我在查找页面上使用了jQuery和Validator插件,但是当我在Chrome中加载它时,我一直在获取Uncaught SyntaxError:意外的令牌消息,有时是“:”,其他时间是“<”。

我已经浏览了网站上的类似条目,并尝试显示所有字符,并检查匹配的括号和大括号(notepad ++)无济于事,并且在寻求帮助之前一遍又一遍地检查代码无济于事。

页面代码如下。我真的很感激任何指针。希望我没有错过任何愚蠢的,但...

<? 
    require("../includes/common.php"); 
    $userID = $_SESSION['id']; 

    $userQuery = $dsn->prepare("SELECT balance FROM cs75f_users WHERE uid=:uidQ"); 
    $userQuery->bindParam(":uidQ",$userID); 
    $userQuery->execute(); 
    $userData = $userQuery->fetch(); 
    $userBalance = $userData[0]; 
?> 

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript" src="javascript/jquery-1.7.2.min.js"></script> 
<script type="text/javascript" src="javascript/jquery.validate.js"></script> 
<style type="text/css"> 
* { font-family: Verdana; font-size: 96%; } 
label { width: 10em; float: left; } 
label.error { float: none; color: red; padding-left: .5em; vertical-align: top; } 
p { clear: both; } 
.submit { margin-left: 12em; } 
em { font-weight: bold; padding-right: 1em; vertical-align: top; } 
</style> 
<script type="text/javascript"><![CDATA[ 

$(document).ready(function() 
{ 
    $("#search").select(); 
    $("#infoDiv").slideUp(); 
    $("#buyDiv").slideUp(); 

    var searchVal = $("#searchForm").validate({ 
     rules:{ 
      search:{ 
       required:true, 
       minlength:4, 
       maxlength:4 
      }, 
     }, 
     messages:{ 
      search:{ 
       required:"Please enter a valid stock symbol", 
       minlength:"Please enter a valid 4 character stock symbol", 
       maxlength:"Please enter a valid 4 character stock symbol" 
      }, 
     }, 
     errorPlacement: function(error,element) 
     { 
      if (element.is(":radio")) 
      { 
       error.appendTo(element.parent().next().next()); 
      } 
      else if (element.is(":checkbox")) 
      { 
       error.appendTo(element.next()); 
      } 
      else 
      { 
       error.appendTo(element.parent().next()); 
      } 
     } 
    }); 

    $("#searchForm").submit(function() { 
     $.ajax({ 
      url:"getquote.php", 
      data:{ 
       symbol:$("#search").val() 
        } 
      success: function(data) { 
       $("#name").html(data.name); 
       $("#price").html(data.price); 
       $("#high").html(data.high); 
       $("#low").html(data.low); 
       $("#infoDiv").slideDown(); 
       $("#buyDiv").slideDown(); 
       $("#qty").select(); 
       $("#hSymbol").val(data.symbol); 
      } 
     }); 
     return false; 
    }); 

    var buyVal = $("#buyForm").validate({ 
     rules:{ 
      qty:{ 
       required:true, 
       min:1, 
       max:10000, 
       digits:true 
      }, 
     }, 
     messages:{ 
      qty:{ 
       required:"Please enter a valid quantity", 
       min:"You must purchase at least one share", 
       max:"Upper limit of 10,000 shares at one time", 
       digits:"Please enter a valid number" 
      }, 
     }, 
     errorPlacement:function(error,element) { 
      if (element.is(":radio")) 
      { 
       error.appendTo(element.parent().next().next()); 
      } 
      else if (element.is(":checkbox")) 
      { 
       error.appendTo(element.next()); 
      } 
      else 
      { 
       error.appendTo(element.parent().next()); 
      } 
     } 

    }); 
}); 

]]></script> 

<title>CS75 Finance Login</title> 

</head> 
<body> 
<div id="logo" align="center"> 
    <img src="images/logo.gif" border="0" alt="CS75 Finance" /> 
</div> 
<div id="welcome" align="center"> 
    <h4>Welcome to CS75 Finance</h4> 
    <h4>Stock Information Quote</h4> 
</div> 

<div id="searchDiv" align="center"> 
    <form id="searchForm"> 
     <table border="0" cellspacing="2" cellpadding="2"> 
      <tr> 
       <td>Symbol:</td> 
       <td><input type="text" id="search" size="10" /></td> 
       <td></td> 
       <td><input type="submit" value="Search" /></td> 
      </tr> 
     </table> 
    </form> 
</div> 

<div id="infoDiv" align="center"> 
    <h4>Selected stock details:</h4> 
    Company: <span id="name"></span><br /> 
    Price: $<span id="price"></span><br /> 
    High: $<span id="high"></span><br /> 
    Low: $<span id="low"></span><br /> 
</div> 

<br /> 

<div id="buyDiv" align="center"> 
    <form id="buyForm" method="post" action="buy.php"> 
     <table border="0" cellspacing="2" cellpadding="2"> 
      <tr> 
       <td colspan="5" align="center"><b>Your current balance is: $</b><? echo number_format($userBalance,2); ?></td> 
      </tr> 
      <tr> 
       <td><input type="hidden" id="hSymbol" /></td> 
       <td align="right">Qty:</td> 
       <td><input type="text" id="qty" name="qty" size="10" value="1" /></td> 
       <td></td> 
       <td><input type="submit" value="Purchase" /></td> 
      </tr> 
     </table> 
    </form> 
</div> 

<? 
    $dsn = NULL; 
?> 

<br /> 
<hr width="70%"> 
<p align="center">CS75 Finance. Copyright 2012. All right reserved.</p> 
</body> 
</html> 

希望我张贴正确。提前致谢。

+2

你好,欢迎堆栈溢出,请尝试将尽可能具体,即给予我们的步骤重新创建此/给我们错误发生的行号(或行) – epoch 2012-08-01 12:28:20

回答

2

JS提示说,你的代码有一些错误。尝试解决这些问题,并再次检查:)

一个行是你的$(文件)。就绪

如果你想测试它自己:http://www.jshint.com/

Errors: Line 13: }, Extra comma.

Line 20: }, Extra comma.

Line 45: success: function(data) { Expected '}' to match '{' from line 40 and instead saw 'success'.

Line 45: success: function(data) { Expected ')' and instead saw ':'.

Line 45: success: function(data) { Missing semicolon.

Line 45: success: function(data) { Missing name in function declaration.

Line 66: }, Extra comma.

Line 74: }, Extra comma.

Line 92: }); Expected '(end)' and instead saw '}'.

+0

感谢您的答复 - 我试过了,不知何故错过了我的ajax函数中的逗号 - 3天逗号!欣赏协助。 – 2012-08-02 11:20:59

+1

您是否想要将答案标记为解决方案? :) – 2012-08-02 13:58:27

0

你的问题是由CDATA没有引起被正确定义,它需要在声明的开始和结束之前有一个//

<script type="text/javascript"> 
    //<![CDATA[ 

    // your code here.... 

    //]]> 
</script> 

除此之外,你有一些额外的逗号和缺少一些逗号

+1

感谢您的答复 - 我试过这个,并在某种程度上错过了我的ajax函数中的逗号 - 3天逗号!欣赏协助。 – 2012-08-02 11:21:16