无法访问javascript函数

时间:2014-04-16 07:14:15

标签: c# jquery asp.net-mvc html-helper

我在javascripts中有函数

$(document).ready(function () {
        if ($("#ProductName").val().toString() == "") {
            $("#pricingSectionDisplay").hide;
            $("#pricingSectionProductName").val("");
        }
        else {
            $("#pricingSectionDisplay").show;
            $("#pricingSectionProductName").val($("#ProductName").val());
        }


        if ($("#PackSize").val().toString() == "") {
            $("#pricingSectionDisplay").hide;
            $("#pricingSectionPackSize").val("");
        }
        else {
            $("#pricingSectionDisplay").show;
            $("#pricingSectionPackSize").val($("#PackSize").val());
        }
    });

 function pricingSectionDisplay() {
        if ($("#ProductName").val().toString() == "") {
            $("#pricingSectionDisplay").hide;
            $("#pricingSectionProductName").val("");
        }
        else {
            $("#pricingSectionProductName").val($("#ProductName").val());
        }

        if ($("#PackSize").val().toString() == "") {
            $("#pricingSectionDisplay").hide;
            $("#pricingSectionPackSize").val("");
        }
        else {
            $("#pricingSectionPackSize").val($(PackSize).val());
        }
    }

实际上我需要在文本框

时填写标识为pricingSectionProductNamepricingSectionPackSize的标签
  @Html.TextBoxFor(m => m.ProductName, new { @class = "form-control", @id = "ProductName", onblur = "pricingSectionDisplay()" })

@Html.TextBoxFor(m => m.PackSize, new { @class = "form-control", @id = "PackSize", onblur = "pricingSectionDisplay()" })

已经填满。

我的代码似乎没有达到此目的。 我做错了什么?

2 个答案:

答案 0 :(得分:1)

所有方法调用都是这样的:

$("#pricingSectionDisplay").hide;

应该是:

 $("#pricingSectionDisplay").hide();

此外,.val()已经返回一个字符串,因此没有理由在其上调用.toString()


如果您需要进一步的帮助,请发布实际相关的HTML(浏览器看到的是视图/来源,而不是模板)。

答案 1 :(得分:0)

助手的ID应为id='...'。您无需添加@,因为id不是保留关键字。所以写

 @Html.TextBoxFor(m => m.ProductName, 
     new { @class = "form-control", id = "ProductName", 
      onblur = "pricingSectionDisplay()" })

而不是

  @Html.TextBoxFor(m => m.ProductName, 
              new { @id = "ProductName", 
                    onblur = "pricingSectionDisplay()" })

此外,您必须调用此show()而不是show的show方法 与隐藏相同,请写hide()而不是hide