js判断table元素中元素值是否改变,若未改变返回false, table中包含input和select元素,贴段代码上来

好心人帮我看看错哪了?<scripttype="text/javascript">functioncheck_change(){varinplen=document.ge... 好心人帮我看看错哪了?
<script type="text/javascript">
function check_change()
{
var inplen=document.getElementsByTagName("table").getElementsByTagName("input").length;
var input=document.getElementsByTagName("table").getElementsByTagName("input");
alert(inplen);
var customer=document.getElementById("cr");
var curCR=customer.options[customer.options.selectedIndex].value;
for(var a=0;a<inplen;a++)
{
if(input[a].value!=input[a].defaultValue )
{
return true;
}
if(customer.value==curCR)
{
return false;
break;
}
return true;
}
}

</script>
看看 改成这样呢?table中有几个input,一个select(id:customer)和一个textarea (id:remark)。
form中的onsubmit 事件调用check_change()函数.onsubmit="return check_change();"
<script type="text/javascript">
function check_change(){var inplen=document.getElementById("table").getElementsByTagName("input").length;var input=document.getElementById("table").getElementsByTagName("input");
var customer=document.getElementById("cr");var curCR=customer.options[customer.options.selectedIndex].value;var remark=document.getElementById("remark");for(var a=0;a<inplen;a++)
{if(input[a].value!=input[a].defaultValue ){return true;}return false;}if(customer[0].value==curCR && remark.value==remark.defaultValue){alert("No change to save !");return false;}</script>
展开
 我来答
Zjmainstay
2012-10-28 · 知道合伙人互联网行家
Zjmainstay
知道合伙人互联网行家
采纳数:580 获赞数:1129
http://www.zjmainstay.cn

向TA提问 私信TA
展开全部
你的追问里面的代码,去掉第一个return false;这一句在循环里面,基本上都能执行到的,你自己想想。另外,你的function的{}没匹配,最后漏了},在check_change最后加多一个return true,默认有变化,因为你前面做了所有变化情况的判断,返回false,只要它能执行到最后,就一定是有变化了。
下面是修改:
function check_change() {
var inplen = document.getElementById("table").getElementsByTagName("input").length;
var input = document.getElementById("table").getElementsByTagName("input");
var customer = document.getElementById("customer");
var curCR = customer.options[customer.options.selectedIndex].value;
var remark = document.getElementById("remark");
for (var a = 0; a < inplen; a++) {
//有变化立刻返回true

if (input[a].value != input[a].defaultValue) {
return true;
}
//return false;

}
//到这里,全部都没变化了,返回false

if (customer[0].value == curCR && remark.value == remark.defaultValue) {
alert("No change to save !");
return false;
}
//上面都跑过,那就是有变化了

return true;

} //你漏了这个
灰人王
2012-10-27 · TA获得超过2456个赞
知道大有可为答主
回答量:2401
采纳率:0%
帮助的人:914万
展开全部
没有看到你全部的代码,也不是太明白你的需求,但是你这个getElementsByTagName显然用错了,这个函数返回的是一个元素的集合,而不是单个的元素,所以不能在返回的值上继续调用这个函数。

把你的HTML也贴出来。另外,代码不排版是个不好的习惯,别人看了非常累。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式