Aurelia中如何绑定HTML的required属性?是否必须用setAttribute?
在Aurelia中绑定HTML required属性的正确方式
不用非得用原生JS的setAttribute(),Aurelia本身就支持布尔属性的绑定,你之前的问题是没用到正确的绑定语法。
HTML里的required是布尔属性——只要这个属性存在,不管它的值是什么,浏览器都会把元素标记为必填项。所以直接用字符串绑定required="true/false"没用,因为哪怕你设成required="false",属性依然存在,浏览器还是会判定为必填。
正确的做法是用Aurelia的属性绑定语法,直接绑定布尔值到required:
模板代码:
<input type="text" label.bind="fieldLabel" required.bind="isFieldRequired">模型代码:
export class YourViewModel { fieldLabel = "用户名"; isFieldRequired = true; // 动态控制这个值即可 }
当isFieldRequired为true时,Aurelia会给元素添加required属性;当它为false时,会自动移除这个属性,完全符合浏览器对布尔属性的要求。
另外,如果你需要在模板里直接写布尔值(而非绑定变量),也可以用:
<input required.bind="true"> <!-- 等效于添加required属性 --> <input required.bind="false"> <!-- 等效于不添加required属性 -->
总结:不用折腾原生JS方法,用Aurelia的required.bind绑定布尔值就是最优解,之前的问题只是没找对正确的绑定方式而已。
内容的提问来源于stack exchange,提问作者Kula
相关产品推荐
相关产品推荐

