我尝试使用javascript设置DOM元素的默认值。 首先,我需要检查字段值是否为空。如果是,则将值更改为0。 如果不是,那就什么都不做。
文字字段:
<input class="field" type="text" name="feature_value_1" value="" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_2" value="1" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_3" value="" size="50" style="width: 350px;">
字段数量总是在变化。
我试图做这样的事情
var feature_value = document.getElementsByName("feature_values_" + "/^\d+$/").value;
if(feature_value !== ""){
change the default values
}
而且,据我所知,必须使用一些循环,但我不知道如何实现这一点。任何人都可以帮助我吗?
答案 0 :(得分:3)
这个想法是正确的,但你错过了实际的循环。它可能看起来像这样
for (var i = 0; i < feature_value.length; i++)
if (feature_value[i].value === "")
feature_value[i].value = "0";
答案 1 :(得分:2)
正则表达式没有匹配。
最佳解决方案是使用公共className并循环遍历集合。
var elems = document.getElementsByClassName("commonClass");
其他选项是使用querySelectorAll,其中&#34;以&#34;开头。匹配
var elems = document.querySelectorAll("[name^='feature_value_']");
和循环
var i;
for (i=0; i<elems.length; i++) {
if (!elems[i].value.length) { //you might want to trim this
elems[i].value = "0";
}
}
参考文献:
编辑,添加runnable片段:
var elems = document.querySelectorAll("[name^='feature_value_']");
var i;
for (i=0; i<elems.length; i++) {
if (!elems[i].value.length) { //you might want to trim this
elems[i].value = "0";
}
}
&#13;
<input class="field" type="text" name="feature_value_1" value="" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_2" value="1" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_3" value="" size="50" style="width: 350px;">
&#13;