我有一个场景来自动化显示顺序字段,其中类型属性是类型,如type = number,并且没有值属性。
<td width="150px">
<div class="ngTableCell text-center" ng-show="ChildDet.SectionID==parentDet.ID">
<input type="number" min="1" max="2" onkeydown="return false" ng-focus="OrderDetailsFocus(ChildDet)" ng-blur="OrderDetailsChange(parentDet.ID,$index,ChildDet)" ng-disabled="ChildDet.CheckStatus==true ?false:true" ng-model="ChildDet.OrderDetails" style="width:50px" class="ng-valid-min ng-touched ng-dirty ng-valid ng-valid-max ng-valid-number">
<label> </label>
</div>
</td>
答案 0 :(得分:1)
首先,区分HTML&#34;属性&#34;和一个JavaScript对象&#34;属性&#34; ...
属性是HTML标记,用于定义附加到的元素的特定特征。我们使用属性来设置元素的初始状态。
属性存储当前&#34; in-memory&#34; 对象的特征值。
通常,属性和属性之间存在1到1的映射(即标记中设置的id
属性值将与表示该属性的对象的id
属性相同HTML元素)。但是,当您通过JavaScript访问对象的属性时,您获得的初始值来自HTML中的初始值,但从那里,JavaScript可能会在内存中更改此值。
几乎所有HTML表单元素都可以具有value
属性。这并不意味着它必须&#34;在源代码中静态设置value
(这是您设置默认值的方式)。 value
属性是数据的保存位置,是您从JavaScript访问以获取字段值的内容。
因此,在您的情况下,虽然您没有明确初始化value
属性(以及value
属性),但这并不意味着该元素没有value
。它只是意味着该值必须来自其他地方和表单元素,通常是用户填写的数据。
在用户有机会设置后,只需访问value
属性即可。
document.querySelector("button").addEventListener("click", function(){
console.log(document.querySelector("input[type=number]").value);
});
&#13;
<input type="number" min="1" max="2" onkeydown="return false" ng-focus="OrderDetailsFocus(ChildDet)" ng-blur="OrderDetailsChange(parentDet.ID,$index,ChildDet)" ng-disabled="ChildDet.CheckStatus==true ?false:true" ng-model="ChildDet.OrderDetails" style="width:50px" class="ng-valid-min ng-touched ng-dirty ng-valid ng-valid-max ng-valid-number">
<label><button>Click to get value</button></label>
&#13;