我有一个场景可以自动化显示顺序字段,该字段的类型属性是数字,例如 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>
最佳答案
首先,区分 HTML“属性”和 JavaScript 对象“属性”非常重要...
属性是 HTML 标记,定义它们所附加的元素的特定特征。我们使用属性来设置元素的初始状态。
属性存储对象特征的当前“内存中”值。
属性和属性之间通常存在 1 对 1 的映射(即标记中设置的 id
属性值将与 id
属性相同代表该 HTML 元素的对象的名称)。但是,当您通过 JavaScript 访问对象的属性时,您获得的初始值来自 HTML 中的初始值,但从那里,JavaScript 可能会更改内存中的该值。
几乎所有 HTML 表单元素都可以有 value
属性。这并不意味着它“必须”在源代码中静态设置一个值
(这就是设置默认值的方式)。 value
属性是保存数据的位置,您可以从 JavaScript 访问该属性来获取字段的值。
因此,在您的情况下,虽然您没有显式初始化 value
属性(以及 value
属性),但这并不意味着该元素不有一个值
。这只是意味着该值必须来自其他地方并且带有表单元素,这通常是用户填写的数据。
只需在用户有机会设置value
属性后即可访问它。
document.querySelector("button").addEventListener("click", function(){
console.log(document.querySelector("input[type=number]").value);
});
<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>
关于javascript - 如果 "value"属性为 "type",如何设置 "number"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44523637/