在焦点上添加类以形成元素

时间:2013-11-18 15:35:30

标签: jquery

我的目标是将类“焦点”添加到我的表单元素,该元素在单击时具有类.search-form。并在模糊时删除它。

这是我的代码:

$('search-form').on('blur', function(){
   $(this).removeClass('focus');
}).on('focus', function(){
  $(this).addClass('focus');
}); 

我做错了什么。它没有将类焦点添加到click上。

HTML:

<form name="quick_find" action="http://localhost/gostwear6/advanced_search_result.php" method="get" class="search search-form group global-search  blur">
    <input type="text" name="keywords" value="1884" size="50" class="search-input" tabindex="1"  placeholder="Search"   />
    <button class="search-submit" type="submit"><span class="search-submission-text">Search</span></button>
    <input type="hidden" name="search_in_description" value="1" />
    <input type="hidden" name="inc_subcat" value="1" />                             
</form>

5 个答案:

答案 0 :(得分:4)

您忘记了班级选择器前的.

$('.search-form')

此外,这是表单类,而不是输入。试试这个:

$('.search-form input')

答案 1 :(得分:0)

你可以使用css伪类:focus

答案 2 :(得分:0)

唯一缺少的是对班级的引用。

$('.search-form').focus(...

http://jsfiddle.net/afzaal_ahmad_zeeshan/pC9q4/1/

您的代码非常完美,而且运行正常! :)

刚试过你的代码,嘿!您将其作为提交按钮。这会强制浏览器加载页面并提交表单。您可以尝试使用

return false; 

查看单击按钮时会发生什么。

之后更改代码以访问该按钮。您的代码是一个提交按钮,因此请尝试访问它并更改其类。这是代码:

$('.search-form button').on('blur', function(){
   $(this).removeClass('focus');
}).on('focus', function(){
   $(this).addClass('focus');
}).on('click', function () {
   return false;
}); 

答案 3 :(得分:0)

要定位表单,请使用focusout/focusin个事件(泡泡):

$('.search-form').on('focusout', function () {
    $(this).removeClass('focus');
}).on('focusin', function () {
    $(this).addClass('focus');
});

默认情况下,FORM无法获得焦点,将属性tabindex添加到FORM:

<form tabindex="-1" name="quick_find" ...>

对于样式,请使用:

.search-form {outline:0}

JsFiddle

答案 4 :(得分:0)

试试这个。

           $(".search-form form:first").blur(function(){
             $(this).removeClass("focus");
            }).focus(function(){
             $(this).addClass("focus");
            });