0

嗨,我正在研究 jquery.change函数。

javascript代码:

 $(document).ready(function () {

    $("#user").change(function()
    {
       var v=$('#user').val();
       var i=0;
       var id1="";
       while(v[i]!="|")
       {
          parseInt(v[i]);
          id1=(id1)+v[i];
          i++;
       }
      $("#dummy").attr("href", "create_graph/demo_graph.php?id="+id1);
      $("#dummy").attr("target",'content1');
  });

HTML 代码:

User Name:
<TD>
    <SELECT NAME='user' id='user'>
        <OPTION value=''></OPTION>{USER}
    </SELECT>
</TD>

它在 Mozilla 和 Chrome 中运行良好,但弹出框说

"Stop running this script? 
A script on this page is causing your web browser to run slowly. If it continues to run, your          
computer might become unresponsive. "

即使我说“不”,它也会一次又一次地给出这个弹出框

当我删除上面的 javascript 时,它不会给出任何弹出窗口......

请帮帮我。我将根据需要提供所需的信息。

4

2 回答 2

4

v[i]!="|"v如果不包含将始终为真|,因此它将是一个无限循环。

你只想得到之前的部分|,所以你可以使用以下split方法:

$("#user").change(function() {
    var id = $(this).val().split('|')[0];
    $("#dummy").attr("href", "create_graph/demo_graph.php?id="+id);
    $("#dummy").attr("target",'content1');
});
于 2013-04-10T07:34:39.750 回答
1

好像你的

while(v[i]!="|")

可能会永远运行。显式添加终止条件。

于 2013-04-10T07:33:57.313 回答