js 如何判断数组为空

lscvip 2010-05-26 05:03:44
<form id="thisform" name="thisform" method="post" action="">
<p>
<input type="text" name="abc" id="abc" />
</p>
<p>
<input type="text" name="abc" id="abc" />
</p>
<p>
<input type="text" name="abc" id="abc" />
</p>
<p>
<input type="submit" name="button" id="button" value="提交" />
</p>
</form>

以上代码,ABC文本框为变量添加,在提交时,如何用JS判断不能全部为空?
如果是一个文本框,我通常用:

<script>
function checkamount(thisform)
{
if(thisform.abc.value=="")
{
window.alert("内容不能为空")
thisform.abc.focus()
return false
}
}
</script>
...全文
7646 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hlq_zist 2010-05-26
  • 打赏
  • 举报
回复
<script type="text/javascript">
function checkamount(/*f*/){
var o=document.getElementsByName("abc");
/*var o=f.abc*/;
if(!o){alert('程序错误,无法验证!');return false}
for(var i=0;i<o.length;i++){
if(o[i].value==""){alert("内容"+(i+1)+"不能为空"); o[i].focus(); return false; }
}
}
</script>


上次没弄好,再试一次~
hlq_zist 2010-05-26
  • 打赏
  • 举报
回复
[CODE]<script type="text/javascript">
function checkamount(/*f*/){
var o=document.getElementsByName("abc");
/*var o=f.abc*/;
if(!o){alert('程序错误,无法验证!');return false}
for(var i=0;i<o.length;i++){
if(o[i].value==""){alert("内容"+(i+1)+"不能为空"); o[i].focus(); return false; }
}
}
</script>[/CODE]

试下UBB~
LonelyStark 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lizfnet 的回复:]
你可以用document.getelementbyname读出name=“abc”的,然后循环判断喽。
[/Quote]
是getElementsByName
另外在IE里这个方法有时候失效
所以并不可靠
hlq_zist 2010-05-26
  • 打赏
  • 举报
回复
<script type="text/javascript">
function checkamount(/*f*/){
var o=document.getElementsByName("abc");
/*var o=f.abc*/;
if(!o){alert('程序错误,无法验证!');return false}
for(var i=0;i<o.length;i++){
if(o[i].value==""){alert("内容"+(i+1)+"不能为空"); o[i].focus(); return false; }
}
}
</script>

同意“理上网来”~

看看能不能解决你的问题!
lizfnet 2010-05-26
  • 打赏
  • 举报
回复
你可以用document.getelementbyname读出name=“abc”的,然后循环判断喽。
toury 2010-05-26
  • 打赏
  • 举报
回复
<form id="thisform" name="thisform" method="post" action="" onsubmit='validchk(this)'>
<p><input type="text" name="abc" id="abc" /></p>
<p><input type="text" name="abc" id="abc" /></p>
<p><input type="text" name="abc" id="abc" /></p>
<p><input type="submit" name="button" id="button" value="提交" /></p>
</form>

<script>
function checkamount(f){
var o=f.abc;
if(!o){alert('程序错误,无法验证!');return false}
for(var i=0;i<o.length;i++){
if(o[i].value==""){alert("内容"+(i+1)+"不能为空"); o[i].focus(); return false; }
}
}
</script>
stanlynet 2010-05-26
  • 打赏
  • 举报
回复
数组?
Msxindl_Com 2010-05-26
  • 打赏
  • 举报
回复
要搞清楚:ID具有唯一性,每个ID的值是不同的,是唯一的。
zyzy15 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 toury 的回复:]
引用 9 楼 lscvip 的回复:

hlq_zist:
谢谢,快实现了,但我要的是,三个文本框,只要一个有内容就通过提交。现在JS,如果第一个为空,其他有内容也不能通过,望指正,谢谢。


HTML code
<form id="thisform" name="thisform" method="post" action="" onsubmit='validchk(this)'>……
[/Quote]

用11楼的改了改

<form id="thisform" name="thisform" method="post" action="" onsubmit='checkamount(this)'>
<p><input type="text" name="abc" id="abc" /></p>
<p><input type="text" name="abc" id="abc" /></p>
<p><input type="text" name="abc" id="abc" /></p>
<p><input type="submit" name="button" id="button" value="提交" /></p>
</form>

<script>
function checkamount(f){
var o=f.abc, total=0;
if(!o){alert('程序错误,无法验证!');return false}
for(var i=0;i<o.length;i++){
if(o[i].value==""){total ++}
}
if(total==o.length){alert("内容不能为空"); return false; }
else {alert("提交成功!"); return true; }
}
</script>

toury 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lscvip 的回复:]

hlq_zist:
谢谢,快实现了,但我要的是,三个文本框,只要一个有内容就通过提交。现在JS,如果第一个为空,其他有内容也不能通过,望指正,谢谢。
[/Quote]
<form id="thisform" name="thisform" method="post" action="" onsubmit='validchk(this)'>
<p><input type="text" name="abc" id="abc" /></p>
<p><input type="text" name="abc" id="abc" /></p>
<p><input type="text" name="abc" id="abc" /></p>
<p><input type="submit" name="button" id="button" value="提交" /></p>
</form>

<script>
function checkamount(f){
var o=f.abc, total=0;
if(!o){alert('程序错误,无法验证!');return false}
for(var i=0;i<o.length;i++){
if(o[i].value==""){total ++}
}
if(total=o.length){alert("内容"+(i+1)+"不能为空"); o[i].focus(); return false; }
}
</script>
sillyfish521 2010-05-26
  • 打赏
  • 举报
回复
既然楼主说ABC文本框为变量添加,那想必是在Array()中动态取的了
那你就直接遍历你的Array并逐一判断就可以了
大致为:
//数组中为你说要的类似为abc
var arg = new Array();
arg.push("abc");

//这里就是你动态取值和判断的了
var flag =false;
for(var i=0;i<arg.length;i++){
var txtValue = document.getElementById(arg[i]).value;
if(txtValue !=""){
flag =true;
}
}

if(flag){
//写你要提交操作的代码
}

------------------------------
以上是我的理解,希望对你有用
lscvip 2010-05-26
  • 打赏
  • 举报
回复
hlq_zist:
谢谢,快实现了,但我要的是,三个文本框,只要一个有内容就通过提交。现在JS,如果第一个为空,其他有内容也不能通过,望指正,谢谢。

87,910

社区成员

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

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