如何将焦点从文本框中移除?

6

打开表单时,光标会等待在文本框中,并显示帮助文本。因此,可能会发生一些验证错误。因此,我不希望在打开表单时自动聚焦于文本框,用户必须点击文本框并输入文本。但是,即使光标位于文本框中,这里也没有任何onfocus事件。

if(!$.trim($("#productsTextArea1").val())){
        helpTip = "help string ....";
        $("#productsTextArea1").val(helpTip);
        $("#productsTextArea1").css("color","#999");
        $("#productsTextArea1").click(function(event){
            if($("#productsTextArea1").val().indexOf("Enter a return")>-1){
                $("#productsTextArea1").css("color","black").val("");
            }
        });
    } else {
         $("#productsTextArea1").blur();
    }

请给予建议...
请点击JSFIDDLE

你为什么要在页面加载时运行这个函数?为什么不推迟到用户实际点击文本区域时再运行它呢? - Diodeus - James MacFarlane
1个回答

11

更新:

使用HTML5的placeholder属性,您不需要使用任何js。

    <textarea id="productsTextArea1" name="product" rows="5" 
placeholder="Some Hint Text is Placed Here"></textarea>

要禁用所有输入元素的自动对焦,请使用以下方法。

  $(function(){
        $('input').blur();
    });
为禁用特定元素的自动对焦,请按照以下方式传递元素ID:
$(function(){
    $('input#someid').blur();
});

实际上没有自动对焦,你在问什么。能否请您重新表述您的问题? - defau1t
正确的,代码中没有自动对焦,但是一旦页面加载完成,光标会等待在文本区域中。这是怎么发生的?请检查我提供的jsfiddle。 - user2444474
对我来说它运行良好。我看不到自动对焦,只有在你点击文本区域内部时才会出现焦点。对我来说一切都按照预期工作。我在Firefox和Chrome中进行了测试。你正在测试哪个浏览器?对我来说一切看起来都很好。 - defau1t
附上屏幕截图,我正在检查Firefox 22。请在此处检查问题http://jsfiddle.net/AVbJk/ - 向下滚动滚动条,将看到光标。 - user2444474
我无法重现这个问题,就像我说的,它对我来说运行良好。不过,为什么不尝试使用我的 fiddle 中的 html5 占位符属性: http://jsfiddle.net/refhat/AVbJk/18/你真的不需要再使用那个脚本或任何 js 了。 - defau1t
这个问题可以在IE中持续地复现。 - hari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接