如果存在name属性,则HTML textarea元素不显示初始值

时间:2015-12-12 17:55:23

标签: html backbone.js textarea handlebars.js

我正在使用backbone.js和handlebars.js在SPA中呈现骨干视图。我的车把模板看起来像这样(简化):

{{#if text}}
    <textarea name="{{field}}">{{text}}</textarea>
{{/if}}

使用上下文渲染模板:

{ field: 'quote', text: "Your lack of faith disturbs me." }

产生以下有效的HTML:

<textarea name="quote">Your lack of faith disturbs me.</textarea>

不幸的是,初始文本不可见(在最新的Chrome和Safari中测试过),即使Chrome工具显示初始值已正确添加到DOM(使用值属性! )。

如果我从模板中删除'name'属性,或将name属性替换为其他属性(例如namex =“{{field}}”),则会正确显示初始值。

我尝试一次删除一条css规则,看看其中一条规则是否导致文本隐藏,但没有运气。

另外,作为一个实验,我在textarea元素上使用了jquery(在渲染完成后)来分配一个值,但是除非我删除了name属性,否则这个值也不会显示。

我的直觉说,鉴于标记是正确的,无论是主干还是把手都不应该受到责备,但是我没有线索可以继续使用这个。

帮助我,Stack Overflow,你是我唯一的希望......

1 个答案:

答案 0 :(得分:0)

原来是我的突然熄火;我没有挖到backbone-modelbinder,一个自动填充表单字段的backbone.js附加组件。绑定器正在重置该值,尽管显然它实际上并没有覆盖DOM中的值(如chrome工具中所示)。最后一部分让我感到高兴:看到镀铬工具的初始价值而不是屏幕上的价值导致我寻找更复杂的解决方案(并最终提出SO问题,认为我发现了某种晦涩的错误)... < / p>

非常感谢...