jquery - 交换提交按钮类和焦点上的文本

时间:2014-05-06 16:01:37

标签: jquery

有些日子我的jquery配置有问题:

我有一个输入字段并在其旁边提交按钮。

如果输入字段被聚焦,则当前按钮会更改其文本和类。 到目前为止一直很好....但如果我点击或关注按钮,它会切换回初始状态 州。但它不应该。

所以我想实现:如果输入字段OR按钮被聚焦/点击而不是更改按钮

请看我的jsfiddle

$('.swap-submit > input').bind('focus blur', function() {
  var btn = $(this).siblings('span').find('button');
  btn.toggleClass('btn-submit-text btn-submit-icon').html(btn.text() == 'Find' ? '-Icon-' : 'Find');
});

http://jsfiddle.net/NPFF3/

1 个答案:

答案 0 :(得分:0)

DEMO:http://jsfiddle.net/NPFF3/4/

如果您想在输入或按钮聚焦时更改按钮的类和文本,则:

$('input,button').bind('focus', function () {
  var btn;
  if($(this).prop('tagName').toLowerCase()=='button'){
      btn = $(this);
  }
  else{
      btn = $(this).siblings('span').find('button');
  }

  btn.toggleClass('btn-submit-text btn-submit-icon').html(btn.text() == 'Find' ? '-Icon-' : 'Find');

  });

或者,如果您只需要在输入焦点上更改按钮的类和文本,那么:

$('input').bind('focus', function () {
    btn = $(this).siblings('span').find('button');      
    btn.toggleClass('btn-submit-text btn-submit-icon').html(btn.text() == 'Find' ? '-Icon-' : 'Find');
  });