【问题标题】:input is self closing and should not have content输入是自动关闭的,不应该有内容
【发布时间】:2014-01-11 15:53:35
【问题描述】:

当我加载我的 Express 网页时,我收到以下错误:

快递 500 错误:/app/views/index.jade:114 112| td 2 113| td 4 年 > 114|输入是自动关闭的,不应该有内容。

112| td 2
113| td 4 years
> 114|
input is self closing and should not have content.
at Object.Compiler.visitTag (/app/node_modules/jade/lib/compiler.js:434:15)
at Object.Compiler.visitNode (/app/node_modules/jade/lib/compiler.js:210:37)
at Object.Compiler.visit (/app/node_modules/jade/lib/compiler.js:197:10)
at Object.Compiler.visitBlock (/app/node_modules/jade/lib/compiler.js:278:12)
at Object.Compiler.visitNode (/app/node_modules/jade/lib/compiler.js:210:37)
at Object.Compiler.visit (/app/node_modules/jade/lib/compiler.js:197:10)
at Object.Compiler.visitTag (/app/node_modules/jade/lib/compiler.js:443:12)
at Object.Compiler.visitNode (/app/node_modules/jade/lib/compiler.js:210:37)
at Object.Compiler.visit (/app/node_modules/jade/lib/compiler.js:197:10)
at Object.Compiler.visitBlock (/app/node_modules/jade/lib/compiler.js:278:12)

这不会在使用工头启动在本地运行时显示,仅当它在服务器上时才会显示。

【问题讨论】:

  • 您能否也包括一个index.jade 的sn-p,尤其是在第112-114 行附近?该错误表明视图正在尝试创建带有内容的<input> 元素(如<input>content</input>),这不是有效的标记。
  • table#activity(name="activity") tr.sell td 2 td 4 years

标签: node.js express pug


【解决方案1】:

看起来您的输入标签中有内容。在 HTML 中,输入标签不能有内容,
因此您应该删除玉文件中输入标签后面的任何空格或字符。
例如:
input(type="text",name="whatever") something
应该是
input(type="text",name="whatever",value="something")

【讨论】:

    【解决方案2】:

    有时答案比同一行的标签后面的一些内容(例如几个空格)要复杂一些。注意输入标记后面的行被错误地缩进

    【讨论】:

      【解决方案3】:

      遇到同样的错误后,我正在检查错误报告中标记的玉模板行。它实际上包含输入定义,但该定义很好,因为它后面没有任何空格和可打印内容。以下行的缩进更少(两级用于开始另一行表格),因此在标记行中定义的输入元素肯定没有内容。

      然而在模板后面几行之后还有另一个输入。而且那个输入元素确实有一些从属内容。删除那里的内容修复了“这里”的一些误报。

      【讨论】:

        【解决方案4】:

        我有一个类似的问题,我用这个解决了:

        div
           +inputWithTextContent('whatever', 'something')
        
        
        mixin inputWithTextContent(name, message)
          !='<input type="text" name="'+name+'">'+message+'</input>'
        

        【讨论】:

          【解决方案5】:

          另一种解决方案是在输入之后创建一个标签,然后内联显示。这将把标签放在控件旁边。这就是我在jade中使用复选框输入解决问题的方法。

          JADE(引导程序):

                .checkbox
                label 
                  input(type='checkbox', value='remember-me',)
                  label.inlineLabel Remember me
          

          SASS:

          label.inlineLabel
             display: inline
          

          【讨论】:

          • 能否请您开发更多您不清楚的解决方案。谢谢
          • 更新了我的答案以包含代码 sn-ps。希望这会有所帮助。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-04
          • 1970-01-01
          • 2023-03-22
          • 1970-01-01
          • 2018-01-31
          • 2022-01-22
          相关资源
          最近更新 更多