我想在两个文本字段的长度 > 0 时启用一个按钮:如何参考这些文本字段的长度来表达这一点?看起来很简单,但对我来说如何引用组件及其文本(长度)并不明显。我基本上想使用 FRP 来启用/禁用表单提交按钮。我想这些将是“兄弟”组件。
问问题
200 次
2 回答
2
如果双向绑定是一种选择,您可以按照以下方式进行操作:
<input value='{{foo}}'>
<input value='{{bar}}'>
<button disabled='{{ !foo || !bar }}'>submit</button>
这是有效的,因为空字符串 ( ''
) 在 JavaScript 中是虚假的,因此!foo || !bar
只有false
在两者foo
和bar
都是非空的情况下才会如此。
于 2013-12-30T02:23:35.707 回答
0
@Rich Harris:似乎这个<button disabled="{{ !(''+foo) || !(''+bar) }}">submit</button>
技巧的问题在于按钮在开始时被启用,因为foo
andbar
最初都undefined
给出''+undefined
了 string 'undefined'
。如果您有多个具有各种验证要求的字段,该技术也会变得笨拙。
您可能知道,Angular 有一个$invalid
可以应用于表单的,例如,表单的属性<button ng-disabled="myForm.$invalid">submit</button>
在哪里。在 Ractive 中,我想可以编写一个函数然后使用,但这仅适用于一种形式(或者是否有某种方法可以将其“附加”到特定元素?)。myForm
name
isvalid
<button disabled="{{ !isvalid() }}">submit</button>
于 2014-04-18T05:53:07.620 回答