解决方案 »
- extjs2做的项目,如何在用到图表功能的时候兼容extjs4?
- 麻烦帮看看这段代码:全部选项是单选就能实现,复选就无法实现
- [原创]VBS+JS,NBCoder2(代码花姑娘2),一页源码,开源发布+注释,好码建议精华/固顶.
- 超级简单!!
- 怎样取的td元素位置(top;left),或者td元素的width,谢谢大家了,很重要!!
- 请教各位高手一个关于文本框的问题!
- 大家好啦!节日快乐,时至今日,小第的个人网站(程序员知识库)已经满一周岁了,真是双喜临门,呵呵~~~嗯,现在抛分庆祝!
- 请问这句什么意思
- 请教怎么计算字符串字节长度?
- 新人求助贴~一个关于javascript的小问题
- 关于jquery的mousewheel事件
- 请问下面这段控制select的代码哪里有错误
JS取DOM元素需要有特定条件,例如 根据ID,或者根据标签,或者根据class。从你代码上来看,可以通过
var o = document.getElementsByClassName("class2") 获得所有class = "class2" 的DOM元素。这样就可以取到所有未满仓库的input。然后循环取该元素的value:
for(i in o){
alert(i.value)
}
2、你用于存放未满仓库ID的元素,该元素的id 统一都为storagesId。这样你是没法通过getElementByid("storagesId")取到所有仓库元素的。并且就算取到了,也无法与上面提到的输入数量进行对应。建议对源代码进行改造。例如:
将:
<s:if test="#storage.stoarea<400">
//输入数量的地方
<input type="text" class="input2" style=" margin-left: -40px">
//记住仓位编号的地方隐藏域
<input id="storagesId" value="<s:property value="#storage.id"/>" style=" height:0px" type="hidden">
<img src="images/nos/103.gif" style=" margin: 0px auto;" align="top"><tr/>
</s:if>
修改成:
<s:if test="#storage.stoarea<400">
//输入数量的地方
<input id="<s:property value="#storage.id"/>" type="text" class="input2" style=" margin-left: -40px">
//直接将输入域的id设置为仓库id
<img src="images/nos/103.gif" style=" margin: 0px auto;" align="top"><tr/>
</s:if>
这样通过 document.getElementsByClassName("class2") 取到输入数量的域后,通过value可以取到输入值,通过id可以取到仓库编号,且两值存在关联。
以上代码并没有考虑到 你的隐藏域是否有其他用途,所以我直接删除了。具体怎么改得看你的原设计。
另外 document.getElementsByClassName("class2")在有些浏览器中好像无法实现。建议使用jquery 中的$(".calss2")。
所有数值相加是否大于你的无聊总数
循环中所有值相加,然后判断。判断是否输入的数值,i为你单个输入的DOM元素的值
isNaN(i),如果为数值,返回false
//输入数量的地方 ,加上Name属性
<input name="stoarea" type="text" class="input2" style=" margin-left: -40px">
//记住仓位编号的地方隐藏域,id改成 name
<input name="storagesId" value="<s:property value="#storage.id"/>" style=" height:0px" type="hidden">
<img src="images/nos/103.gif" style=" margin: 0px auto;" align="top"><tr/>
</s:if>
例子:取值,判断不能超过最大物料的总数量<style>
.input2{ width:120px;margin-left:0px }
</style>
<form name="form2" onsubmit="return OnSubmit(this)" >
<div>
<ul>
<li style=" height: 100px; width:150px; float:left; border: 1px solid yellow; text-align: center">
<input name="storages" type="text" class="input2" >
<input name="storagesId" value="1" style=" height:0px" type="hidden">
<p style=" height: 8px; font-size: 12px; margin-top: -2px">仓位:11</p>
</li>
<li style=" height: 100px; width:150px; float:left; border: 1px solid yellow; text-align: center">
<input name="storages" type="text" class="input2" >
<input name="storagesId" value="2" style=" height:0px" type="hidden">
<p style=" height: 8px; font-size: 12px; margin-top: -2px">仓位:22</p>
</li>
<li style=" height: 100px; width:150px; float:left; border: 1px solid yellow; text-align: center">
<input name="storages" type="text" class="input2" >
<input name="storagesId" value="3" style=" height:0px" type="hidden">
<p style=" height: 8px; font-size: 12px; margin-top: -2px">仓位:33</p>
</li>
</ul>
</div>
<input type=submit value="提交" >
</form><script>
var Max=100;// 物料的总数量
function OnSubmit(f){
var sum=0;
for(var i=0;i< f.storagesId.length;i++){
alert( f.storagesId[i].value +':' + f.storages[i].value ); //测试 输出 storagesId:storages
sum+=parseInt(f.storages[i].value)||0;
}
//不能大于物料的总数量
if(sum >Max ) {
alert('不能大于物料的总数量');
return false;
}
}
</script>