IE占位符的Javascript修复程序中的错误

IE占位符的Javascript修复程序中的错误,javascript,jquery,internet-explorer,validation,Javascript,Jquery,Internet Explorer,Validation,我最近和他在一起。由于我在输入字段中使用了占位符方法,而IE并不完全支持这些方法,因此我使用了一个方法来正确显示IE中的占位符 这一切都是可行的,但当你在IE中打开de网站时,你会看到JQuery验证在我打开页面时立即被激活,这显然不是重点。所以我认为这是某种错误。我已经查看了.js文件,但是我的js技能不是很好,所以我想知道这个bug可能是什么… 有想法的人?我如何处理IE 使用条件注释加载ie.js和ie.css 在这些文件中,你可以解决开发过程中可能出现的一些问题 我的建议是,如果您使

我最近和他在一起。由于我在输入字段中使用了
占位符
方法,而IE并不完全支持这些方法,因此我使用了一个方法来正确显示IE中的占位符

这一切都是可行的,但当你在IE中打开de网站时,你会看到JQuery验证在我打开页面时立即被激活,这显然不是重点。所以我认为这是某种错误。我已经查看了.js文件,但是我的js技能不是很好,所以我想知道这个bug可能是什么…
有想法的人?

我如何处理IE

  • 使用条件注释加载ie.js和ie.css
  • 在这些文件中,你可以解决开发过程中可能出现的一些问题
我的建议是,如果您使用jQuery,您可以创建一个jQuery插件
placeHolder()
并在所有
输入上使用类名
占位符调用它:

jQuery.fn.placeHolder=function(){
    return this.each(function(){
        var a=$(this).attr("value");

        $(this).focus(function(){
            if($(this).attr("value")==a){
                $(this).attr("value","");
            }}
        );

        $(this).blur(function(){
            if($(this).attr("value")==""){
                $(this).attr("value",a);
            }
        });

    });
};

$('input.placeholder').placeHolder();
​
我如何处理IE?:

  • 使用条件注释加载ie.js和ie.css
  • 在这些文件中,你可以解决开发过程中可能出现的一些问题
我的建议是,如果您使用jQuery,您可以创建一个jQuery插件
placeHolder()
并在所有
输入上使用类名
占位符调用它:

jQuery.fn.placeHolder=function(){
    return this.each(function(){
        var a=$(this).attr("value");

        $(this).focus(function(){
            if($(this).attr("value")==a){
                $(this).attr("value","");
            }}
        );

        $(this).blur(function(){
            if($(this).attr("value")==""){
                $(this).attr("value",a);
            }
        });

    });
};

$('input.placeholder').placeHolder();
​

要运行它,请执行以下操作:

<html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">         </script>
    <script type="text/javascript"> 
      //script from above;
    </script>
    </head>
    <body>
      <input type="text" placeholder="abc"/>
    </body>
    </html>

//上面的脚本;
要运行它,请执行以下操作:

<html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">         </script>
    <script type="text/javascript"> 
      //script from above;
    </script>
    </head>
    <body>
      <input type="text" placeholder="abc"/>
    </body>
    </html>

//上面的脚本;

我应该用这个函数替换我的Placeholder.js文件?我想,你可以在js脚本可以运行的任何地方插入它。:)。注
$(fn)
等于
$(document).ready(fn)
。当然在jquery之后。我不确定我是否明白你的意思。。。所以只要把它放在我的
中,它就可以在IE中工作,也可以在没有JS补丁的所有其他浏览器中工作?谢谢它似乎可以工作,但出于某种原因,JQuery逻辑是由脚本传递的。如果你看一下页面(),你会发现占位符算作输入…我应该用这个函数替换我的placeholder.js文件?我想,你可以在js脚本可以运行的任何地方插入它。:)。注
$(fn)
等于
$(document).ready(fn)
。当然在jquery之后。我不确定我是否明白你的意思。。。所以只要把它放在我的
中,它就可以在IE中工作,也可以在没有JS补丁的所有其他浏览器中工作?谢谢它似乎可以工作,但出于某种原因,JQuery逻辑是由脚本传递的。如果您查看页面(),您将看到占位符算作输入…感谢您的输入,但是如果您查看页面,您将看到它不起作用。。。你在那里使用了很多代码。你试过我为你写的吗?我正在我的ie6+项目中使用它,它很有效。谢谢你的输入,但是如果你看一下页面,你会发现它不起作用。。。你在那里使用了很多代码。你试过我为你写的吗?我正在我的ie6+项目中使用它,它很有效。