<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="ProdPurchase_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
    <script language="javascript">
    
        function CheckInput()
        {
            var s = document.getElementById("Text1").value;
            var patrn=eval("/^[\\s\\S]{0,50}" + s + "[\\s\\S]{0,50}$/");
            var arrDivContent=document.getElementsByName("txt_ckText");
            var i=0;
            for(i=0;i<arrDivContent.length;i++)
            {
                alert(i);
                if (patrn.exec(arrDivContent[i].value))
                {
                    var htmlcontent="<div id='div_" + arrDivContent[i].id.split('_')[2] + "'><input id='Checkbox_" + arrDivContent[i].id.split('_')[2] + "' name='ck' type='checkbox' onclick='CheckSelected()' value = '1' style='float:left' /><input type = 'text' id='txt_ckText_" + arrDivContent[i].id.split('_')[2] + "' name='txt_ckText' readonly='readonly' value='" + arrDivContent[i].value + "qqq' style='border-width:0' /></div>"
                    document.getElementById("divLike").innerHTML = document.getElementById("divLike").innerHTML + htmlcontent;
                }
            }
        }
        
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="Text1" name="Text1" onchange="CheckInput()" type="text" /><br />
        <input id="Text2" name="Text2" type="text" style="width:800px" />
        <div id="divSelected"></div>
        <br />
        <div id="divLike"></div>
        <br />
        <div id="divUnLike">
            <div id='div_1'>
                <input id='Checkbox_1' name='ck' type='checkbox' onclick='CheckSelected()' value = '1'/>
                <input type = 'text' id='txt_ckText_1' name='txt_ckText' readonly='readonly' value='aaa' style='border-width:0' />
            </div>
            <div id='div_2'>
                <input id='Checkbox_2' name='ck' type='checkbox' onclick='CheckSelected()' value = '2'/>
                <input type = 'text' id='txt_ckText_2' name='txt_ckText' readonly='readonly' value='bbb' style='border-width:0' />
            </div>
            <div id='div_3'>
                <input id='Checkbox_3' name='ck' type='checkbox' onclick='CheckSelected()' value = '3'/>
                <input type = 'text' id='txt_ckText_3' name='txt_ckText' readonly='readonly' value='ccc' style='border-width:0' />
            </div>
            <div id='div_4'>
                <input id='Checkbox_4' name='ck' type='checkbox' onclick='CheckSelected()' value = '4'/>
                <input type = 'text' id='txt_ckText_4' name='txt_ckText' readonly='readonly' value='ddd' style='border-width:0' />
            </div>
        </div>
    </div>
    </form>
</body>
</html>。net 代码 我想问一下为什么调用JS会出现无限循环,我改怎么改;在线急等。

解决方案 »

  1.   

    楼主,你的for循环是根据arrDivContent.length来限定的,如果是无限循环的话,可以alert这个长度。如果长度发生变化,说明var arrDivContent=document.getElementsByName("txt_ckText");这种方式有问题,因为你动态生成的代码中又有txt_ckText"出现。只是个思路,lz可先试下。
      

  2.   

    var tempo;
    if (temp=patrn.exec(arrDivContent[i].value)) 
      

  3.   


    arrDivContent.length是变化的,所以我才纳闷是为什么,我也不知道怎么回事。
    i是递增的。
    所以想问问为什么会循环调用哪个方法。
      

  4.   


    并没有循环调用CheckInput()方法,只不过是arrDivContent.length的长度在一直变化,这样看document.getElementsByName("txt_ckText").length可能更清楚了。
      

  5.   

    LZ可验证是否每做了一次循环(i+1)以后,document.getElementsByName("txt_ckText").length的长度也加了1,如果是的话问题就很明显了。
      

  6.   

    换种说法,就是检查如果不在for循环中做innerHTML的操作,document.getElementsByName("txt_ckText").length的长度是否变化?
      

  7.   

    你就不会用查看源码的html发上来吗?
      

  8.   

    页面并没有循环调用CheckInput()函数,在动态向页面中添加标签时,属性name的值也为txt_ckText,这样document对象的相应一些值也会随着改变,getElementsByName("txt_ckText").length的值也会相应增加,便会出现无限循环(个人理解) lz可以用firebug调试