2014-02-14 37 views
1

你好,这是我的详细信息视图中,我有一个输入。点击按钮时,我想比较一下,如果带有txbNumber的文本框的值大于我的模型的属性数量 - >但它给了我语法错误。比较文本框的值的值与模型属性MVC

OnlineStore.Commercial.Models.CategoryProductDetailsViewModel 
@{ 
    ViewBag.Title = "Details"; 
} 
<script src="/Scripts/dist/libs/jquery.js" 
    type="text/javascript"></script> 
<table> 
     <tr> 
      <td>@Model.bigImageTitle</td> 
      <td>@Model.Title</td> 
      <td>@Model.ShortDescription</td> 
      <td>@Model.Description</td> 
      <td>@Model.Price</td>    
     </tr>   
</table> 

<label>Quantity:</label> 
<input type="text" id="txbNumber" /> 
<input type="button" onclick="validate()" /> 
<script> 
    function validate() 
    { 
     var regex = /[0-9]|\./; 
     if (regex.test($("#txbNumber").val())) 
     { 
      var orderquantity=$("#txbNumber").val(); 
      if ( @int.Parse(orderquantity) > @Model.Quantity) 
      { 
       /*here is the exception 
      } 
     } 
    } 
</script> 

回答

1

你混合使用JavaScript语法剃刀(执行一个之前从服务器发送到客户端的响应,二是在客户端完全执行)。

相反的:

if ( @int.Parse(orderquantity) > @Model.Quantity) 

您应该使用全局JavaScript解析方法conerting串整数:

if ( parseInt(orderquantity) > @Model.Quantity) 
+0

谁回答第一个:-D – Alberto

+0

我先回答(提示:?你可以很容易地通过查看其答案是答案列表中较高,假设都有票相同金额)检查 –

+0

我看到我的回答更高: - 。/ 无论如何,当然这只是一个玩笑这不是谁是第一,但帮助人们:)这就是为什么我+1你;) – Alberto

0

这可不行:

@int.Parse(orderquantity) 

试试这个:

if ( parseInt($("#txbNumber").val()) > @Model.Quantity) 

与parseInt函数()安​​全更新通过@bejger

更新建议的那样: check this minimal Fiddle

+0

NO OT无法正常工作或 –

+0

@MilkaSalkova与更新的代码试试! – Alberto

+0

@MilkaSalkova检查小提琴 – Alberto

0

尝试

if(parseInt(orderquantity) > Number(@Model.Quantity)) { 
    doStuff(); 
} 

有时剃刀会很奇怪关于把数字转换为JavaScript。

0

分离您的问题。你的javascript不应该在你看来。使用您的代码添加对JavaScript文件的引用。那么你应该能够比较这些值的问题与JavaScript/jQuery的问题。如果需要的话,在你的$(document)。就绪(函数(){}设置在页面加载原始模型值比较添加代码