JS如何实现判断一个表单某一列的所有数据

sky1216520 2011-10-11 04:20:37
如题怎么才能用js来判断一个表单某一列的所有数据 如果这一列的所有数据都为零就抛出错误提示,如果有一个大于0就不用提示。表格如下

name gg dw scshl shl
aa 10 片 10.00 10.00
bb 30 克 0.00 0.00
cc 50 克 0.00 0.00


如上表 如果scshl 都为零就抛出错误提示,只要scshl有一个大于零就不提示了。
在线等 谢谢各位哥哥姐姐们了
...全文
501 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky1216520 2011-10-12
  • 打赏
  • 举报
回复
呵呵 JS真的不懂 我的表单里有dj_sn 也就是每行的序号 把("tableId")改成 ("dj_sn") 这样可以吗老师
liangws 2011-10-12
  • 打赏
  • 举报
回复
你给table加个ID啊

<table id="tableId"></table>
sky1216520 2011-10-12
  • 打赏
  • 举报
回复
我在表单里引用了您的代码以后 总是报错 提示缺少对象 应该是找不到这个("tableId")的原因吧 下面是我的表单里的存盘校验的代码
//存盘校验
function uf_saveCheck() {
if ( IsSpace(DsMain.Field("jibie").Value) ) {
alert("请货类型不能为空,是药品就选药品,是赠品就选赠品!!");
return false
}
if ( IsSpace(DsMain.Field("bm").Value) ) {
alert("请选择部门");
return false
}
if (IsSpace(dssub1.Field('spid').Value)){
alert("明细项数据不完整,请检查!");
return false;
}
if ((DsMain.Field("leibie").Value) == '1' && (DsMain.Field("jibie").Value) == '药品' ){
var tableEl = document.getElementById("tableId"),
trs = tableEl.rows,
fTds = trs[0].cells,
index = 0,
isAllZero = true;
for (var i = fTds.length; i--;){
if (fTds[i].innerHTML === "scshl"){
index = i;
break;
}
}

for (var i = 1, j = trs.length; i < j; i++){
var tdEl = trs[i].cells[index];
if (+tdEl.innerHTML !== 0){
isAllZero = false;
break;
}
}

if (isAllZero){
alert("全部为零");
}
}
for (var i = 0; i < dssub1.RecordCount; i++) {
var shl = dssub1.GetValueAt(i, 'shl');
//var scshl= dssub1.Field('scshl').Value;
//if ( shl < scshl ){
//if ( dssub1.Field('shl').Value < dssub1.Field('scshl').Value){
if(shl == 0 || shl <= 0){
alert("明细项第["+(i+1)+"]行小于零或修改数量小于自动生成的补货数量,请检查!");
return false;
}
}
}
//明细行间运算
function uf_comput(field){
pf_field_comput(dssub1, field, '');
}
//包装换算
function uf_mx_bzhs(field){
if(pf_bzhs_comput(dssub1,field,'shl','','') == true){
uf_comput("shl");
}
}
liangws 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sky1216520 的回复:]

麻烦问下 7楼的liangws老师var tableEl = document.getElementById("tableId"),
这段里的 ("tableId"), 这个是什么意思呢??谢谢了
[/Quote]

table的ID
sky1216520 2011-10-12
  • 打赏
  • 举报
回复
麻烦问下 7楼的liangws老师var tableEl = document.getElementById("tableId"),
这段里的 ("tableId"), 这个是什么意思呢??谢谢了
liangws 2011-10-11
  • 打赏
  • 举报
回复
抱歉,刚才代码FF不兼容。改成下面那个就可以了

(function(document){
var tableEl = document.getElementById("tableId"),
trs = tableEl.rows,
fTds = trs[0].cells,
index = 0,
isAllZero = true;
for (var i = fTds.length; i--;){
if (fTds[i].innerHTML === "scshl"){
index = i;
break;
}
}

for (var i = 1, j = trs.length; i < j; i++){
var tdEl = trs[i].cells[index];
if (+tdEl.innerHTML !== 0){
isAllZero = false;
break;
}
}

if (isAllZero){
alert("全部为零");
}

})(document)
sk_up_dyy 2011-10-11
  • 打赏
  • 举报
回复


<table>
<tr>
<td>name</td><td>gg</td><td>dw</td><td>scshl</td><td>shl</td>
</tr>
<tr>
<td>aa</td><td>10</td><td>片</td><td>10.00</td><td>10.00</td>
</tr>
<tr>
<td>bb</td><td>30</td><td>克</td><td>0.00</td><td>0.00</td>
</tr>
<tr>
<td>cc</td><td>50</td><td>克</td><td>0.00</td><td>0.00</td>
</tr>

</table>

<input type="button" value="判断" id="btn" />

<script>
document.getElementById('btn').onclick=function(){
var _bool=false;
var _trs=document.getElementsByTagName('tr');
for(i=1,l=_trs.length;i<l;i++){
var os=_trs[i].childNodes[3].innerHTML;
if(!isNaN(os)&&os>0){ _bool=true;break;}
}
_bool?alert("符合要求"):alert("全为0,不符合要求");
}

</script>
liangws 2011-10-11
  • 打赏
  • 举报
回复

<table id="tableId">
<tr><td>name</td><td>gg</td><td>dw</td><td>scshl</td><td>shl</td></tr>
<tr><td>aa</td><td>1</td><td>10</td><td>0.00</td><td>10.00</td></tr>
<tr><td>bb</td><td>2</td><td>20</td><td>0.00</td><td>0.00</td></tr>
<tr><td>cc</td><td>3</td><td>30</td><td>0.00</td><td>0.00</td></tr>
<tr><td>dd</td><td>4</td><td>40</td><td>0.00</td><td>0.00</td></tr>
</table>


(function(document){
var tableEl = document.getElementById("tableId"),
trs = tableEl.getElementsByTagName("tr"),
fTds = trs[0].getElementsByTagName("td"),
index = 0,
isAllZero = true;
for (var i = fTds.length; i--;){
if (fTds[i].innerText === "scshl"){
index = i;
break;
}
}

for (var i = 1, j = trs.length; i < j; i++){
var tdEl = trs[i].getElementsByTagName("td")[index];
if (+tdEl.innerText !== 0){
isAllZero = false;
break;
}
}

if (isAllZero){
alert("全部为零");
}

})(document)
sky1216520 2011-10-11
  • 打赏
  • 举报
回复
能写全吗3楼的大哥 我对JS不太懂
yhtapmys 2011-10-11
  • 打赏
  • 举报
回复
var tableObj = document.getElementById("tableName");
...//for
tableObj.rows[i].cells[3].innerText
...
sky1216520 2011-10-11
  • 打赏
  • 举报
回复
name不能改的 每行都是一个商品 scshl是SQL语句算出来的 只想通过scshl来拦截
yangchao_713 2011-10-11
  • 打赏
  • 举报
回复
你可以给这个表格的这列都取一个同样的名字 ,就是name属性了,然后在JS中通过name来获取这列,然后再取得值就OK了

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧