今天遇到一个问题:在对同name 的input 表单时 判断其值是否有效
用了each判断
当初错误的做法:
function check_goods()
{
var regs = /^\d+$/;
$("form[name='event'] input.goods_id").each(function(){
if($(this).val() == '' || !regs.test($(this).val()))
{
alert('请输入必要商品信息:id值和商品件数');
return false;
}
})
}
错误点是:这里在循环中return false 但是表单却还是提交了;
为什么没有阻止!!
后来:宏鸿看过之后改了一个点。
function checkGoods(){
var regs = /^\d+$/;
var flag = true;
$("form[name='event'] input.goods_id").each(function(){
if($(this).val() == '' || !regs.test($(this)).val())
{
alert('请输入必要商品信息:id值和商品件数');
flag = false;
return;
}
})
return flag;
}
完整知识:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script language="javascript">
//--->
function checksubmit()
{
if (document.form1.myname.value=="")
{
alert("请输入开始数值!");
document.form1.myname.focus();
return false;
}
return true;
}
//--->
</script> <form name="form1" method="post" action="#" onsubmit="return checksubmit()">
<label>
<input name="myname" type="text" id="id">
</label>
<p>
<label>
<input type="submit" name="Submit" value="提交">
</label>
</p>
代码很简单。
注意以下几点:
1,在js中,是获得input的name,而不是id,往往这里的name和id一样。
2,onsubmit="return checksubmit()" 这里的return不能省掉。
3,checksubmit()函数里面的return true;可以省去,因为默认是返回true;
参考:
http://www.cnblogs.com/wangkongming/archive/2012/12/13/2816390.html