IE中的HTML问题

时间:2012-06-29 06:34:21

标签: php jquery html internet-explorer

我已经编写了一个用于登录的HTML代码,如下所示

<div id="wrapper">
<div id="page">
    <div class="aLogin">
        <label>User Name : </label>
        <input type="text" class="lname" />
        <label>Password : </label>
        <input type="password" class="lpwd" />
        <input type="submit" class="logSubmit" value="LOGIN" />
        <p class="lalert">test alert</p>
    </div>
</div>

  并编写jQuery进行验证。它动态替换警报(此处我使用<p class="lalert">test alert</p>)   问题是,当我在IE中运行时,警报消息显示两次。但在其他浏览器没有问题。

jQuery

$(document).ready(function(){
   $('.logSubmit').click(function(){
    var name = $('.lname').val();
    var pwd = $('.lpwd').val();
    $.post("/login.php",{name:name,pwd:pwd}).success(function(data){
        var obj = jQuery.parseJSON(data);
        $('.lalert').fadeIn('slow');
        if(obj.success == 1){
            $('.lalert').css('color','#067800');
            $('.lname').val('');
            $('.pwd').val('');
            $('.lalert').html(obj.msg);
        }else{
            $('.lalert').css('color','#CC0000');
            $('.lalert').html(obj.msg);
        }
    });
  });
});

login.php

 <?php
   $name = $_POST['name'];
   $pwd = $_POST['pwd'];
   $err['success'] = 0;
   $err['msg'] = '';
   if($name != 'admin'){
   $err['msg'] = 'Invalid Name';
   }else if($pwd != 'admin'){
   $err['msg'] = 'Invalid Password';
   }else{
   $err['success'] = 1;
   $err['msg'] = 'Success';
   }
   echo json_encode($err);
?>

我无法找到这种情况发生的原因。任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:1)

嗨你忘了写“return false”。

$('.logSubmit').click(function(){ 
    var name = $('.lname').val(); 
    var pwd = $('.lpwd').val(); 
    $.post("/login.php",{name:name,pwd:pwd}).success(function(data){ 
        var obj = jQuery.parseJSON(data); 
        $('.lalert').fadeIn('slow'); 
        if(obj.success == 1){ 
            $('.lalert').css('color','#067800'); 
            $('.lname').val(''); 
            $('.pwd').val(''); 
            $('.lalert').html(obj.msg); 
        }else{ 
            $('.lalert').css('color','#CC0000'); 
            $('.lalert').html(obj.msg); 
        } 
    }); 
      return false;
  }); 

答案 1 :(得分:0)

尝试使用而不是使用$('.logSubmit').click(function(){ ...}

使用以下语法

$('.logSubmit').unbind('click').click(function(){ .....}

这可能会解决问题。

答案 2 :(得分:0)

尝试将 return false; 添加到.logSubmit -click活页夹中。此外,您可以尝试使用&lt; button&gt;替换提交类型的输入。由于提交与表格(提交)有关,在您的情况下情况并非如此。

答案 3 :(得分:0)

最后我得到了解决方案。由于空文本节点,问题发生了。 IE8为<input>,<select>,<img>标记后的换行符生成空文本节点

我在标签后删除了这些空格,现在问题解决了

相关问题