如何设置"价值"属性如果"类型"属性是"数字"

时间:2017-06-13 13:55:37

标签: javascript angularjs selenium selenium-webdriver webdriver

我有一个场景来自动化显示顺序字段,其中类型属性是类型,如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>&nbsp;</label>
                        </div>
                    </td>

1 个答案:

答案 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属性即可。

&#13;
&#13;
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;
&#13;
&#13;