jquery为什么不显示这个文本

时间:2012-01-21 09:27:13

标签: jquery

我正在尝试自学jquery,(到目前为止还没那么成功)为什么当我点击提交时,没有id填充的div会更新?

<script type="text/javascript" src="jquery-1.7.1.min.js"></script>              
<script type="text/javascript">
  $(document).ready(function(){
    $("input#go").click(function(){
      $("div#fill").load('test1.txt');
    });
  });
</script>
</head>
<body>                            
  <form name="login"> 
    <label><strong>Administrative Login </strong></label>                              
    <p>Username:</p>                
    <input name="username" type="text" id="username" />            
    <p>Password</p>               
    <input name="password" type="password" id="password" />
    <br>                     
    <input type="Submit" id="go">
    <div id="fill"></div>

1 个答案:

答案 0 :(得分:1)

您需要通过在点击处理程序中返回false来取消提交按钮的默认操作:

$(document).ready(function(){
    $("input#go").click(function() {
        $("div#fill").load('test1.txt');
        return false;
    });
});

通过返回false,表单未正常提交,浏览器停留在同一页面上,而您正在执行的从服务器获取text.txt文件的AJAX调用有足够的时间来执行。

作为替代方案,我建议您订阅表单的提交事件,而不是提交按钮的click事件:

$(document).ready(function(){
    $("form").submit(function() {
        $("div#fill").load('test1.txt');
        return false;
    });
});

这将确保每次提交表单时都会执行AJAX调用,而不仅仅是在单击提交按钮时。但当然这取决于您的要求。