【问题标题】:How to fix JavaScript syntax error using Umbraco?如何使用 Umbraco 修复 JavaScript 语法错误?
【发布时间】:2011-12-19 16:19:19
【问题描述】:

我正在使用 Umbraco,尝试按照 website 上显示的基本教程进行操作。

以下代码在 FireBug 中出现语法错误:

jQuery("#get").click(function() { 
        var pageId = <umbraco:Item field="pageID" runat="server" />;
          jQuery.get("/base/Sample/GetPageData/" + pageId + ".aspx", function(data){
            alert("Data loaded: " + jQuery(data).test());
          });
    });

我不知道 umbraco 代码是否导致错误,但它已成功返回 pageId,因此错误显示为:语法错误:var pageId= 1007

任何想法我哪里出错了?

编辑:希望这有助于澄清事情,如果不让我知道!

我在页面的umbraco模板中设置的按钮:

<asp:Button id="get" Text="getxml" runat="server" />

虽然我刚刚意识到按钮的渲染 HTML 有点乱:

<input type="submit" name="ctl00$ctl00$ContentPlaceHolderDefault$get" value="getxml" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$ctl00$ContentPlaceHolderDefault$get&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ContentPlaceHolderDefault_get" />

为什么要这样做??

这是页面中生成的jquery代码:

 jQuery("#get").click(function()
        var pageId = '1082';
          jQuery.get("/base/Sample/GetPageData/" + pageId + ".aspx", function(data){
            alert("Data loaded: " + jQuery(data).test());
          });
    });

我按照建议包含了封闭的单引号,但无论有没有我在 FireBug 中遇到相同的语法错误,并且我的脚本无法正常工作

【问题讨论】:

  • 你能发布渲染的输出吗?

标签: javascript jquery syntax umbraco


【解决方案1】:

我认为pageId 是一个查看您的代码的字符串,因此它应该用引号引起来。试试这个。

jQuery("#get").click(function()
        var pageId = '<umbraco:Item field="pageID" runat="server" />';
          jQuery.get("/base/Sample/GetPageData/" + pageId + ".aspx", function(data){
            alert("Data loaded: " + jQuery(data).test());
          });
    });

【讨论】:

  • 你能检查一下来源,看看那个地方的页面上呈现了什么吗?
  • 你能把alert('test get request')放在get成功处理程序中的警报之前,看看它是否有效。
  • 按钮的 id 未设置为我在模板中定义的值。相反,这个 id 被赋予按钮“ContentPlaceHolderDefault_Get”以及其他生成的东西的全部负载(参见有问题的编辑) - 我猜 umbraco 正在这样做。我已经尝试过测试警报,但什么都没有出现,现在我发现了一个重新生成按钮的想法,解释了......
  • 警报不起作用。也不会将按钮 id 更改为我上面提到的生成的 id..
【解决方案2】:

由于某种原因(Umbraco?),ID 为“get”的按钮被生成为ContentPlaceHolderDefault_Get。因此,我将 get 方法中的名称更改为生成的名称,同时将按钮 ID 设为 get。

我猜这是我在 umbraco 模板中编写按钮控件而不是从 .net 控件复制过来的结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    相关资源
    最近更新 更多