2011-05-29 53 views
0

我注意到,我自己的page在IE8上完全不起作用:尝试点击Add Category,而不是Create Category:您应该会收到警报。事实上,我的IE8不会发生这种情况。 Chrome,Firefox,一切正常。委托不适用于IE?一个非常奇怪的行为

为什么?这是整个代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>The GTW Database</title>  
    <script type="text/javascript" src="settings/jquery-1.5.min.js"></script> 
    <script type="text/javascript" src="mgmt/mgmt_javascript.js"></script>   
    <link type="text/css" rel="stylesheet" href="settings/style.css" title="Style" media="all" /> 
</head> 

<body> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#addCategory').click(function(e) { 
       e.preventDefault(); 
       $('#addCategoryForm').toggle(); 
      }); 

      $("#addCategoryForm").delegate("form[name=categoryForm]", "submit", function(e){ 
       e.preventDefault(); 
       alert("Yeah, I'm In"); 
      }); 
     }); 
    </script> 

    <div class="main_content_remark"> 
     <div class="back1"> 
      Categories 
     </div> 

     <div class="back2"> 
      <a id="addCategory" class="lblueb" href="#">Add Category</a> 
     </div> 
    </div> 

    <div class="main_content_remark" id="addCategoryForm" style="display:none; height:32px;"> 
     <form method='post' name="categoryForm"> 
      <div class="categoryName"> 
       <div class="categoryName1"> 
        Name 
       </div> 

       <div class="categoryName2"> 
        <input type="text" maxlength="50" name="name" class="input400" /> 
       </div> 

       <div class="categoryName3"> 
        &nbsp; 
       </div> 

       <div class="categoryName4"> 
        <input type="submit" value="Create Category" /> 
       </div>     
      </div> 
     </form>   
    </div> 
</body> 

希望你能帮助我。这真的很奇怪...同样的方法可以在其他页面中完美地工作...

+0

哪个版本的IE浏览器,你有遇到这个问题呢?我试过IE 7和8,并没有问题。你可以试试http://jsfiddle.net/niklasvh/w4jnM/看看它是否适合你? – Niklas 2011-05-29 13:56:34

+0

你的脚本上的其他东西正在搞乱表单事件处理程序。我在IE 7,8和9上尝试了同样的事情,并获得了caio。请提供更多信息。就像您网页上的其他脚本/标记一样。 – XGreen 2011-05-29 14:00:18

+0

完成!检查整个代码和链接。 – markzzz 2011-05-29 14:04:43

回答

1

问题是您正在使用混淆IE7,8的[name=categoryForm]。将其更改为一个ID,或者如果这种形式里面#addCategoryForm的唯一形式,然后就写:

$("#addCategoryForm").delegate("form", "submit", function (e) { 
      e.preventDefault(); 
      alert("Yeah, I'm In"); 
     }); 
+0

是的,你是对的。无论如何,这真的很奇怪:在其他一些页面中,我使用这种策略,并且它没有问题。 :o – markzzz 2011-05-29 14:23:10