jquery - 聚焦文本区域

标签 jquery jquery-selectors jquery-validate javascript

在下面的代码中,文本区域被添加了 6 次,最初文本区域包含文本 Enter Text。 我的问题是,如果用户在第一个和第三个文本区域中输入数据。 如何提醒用户说“文本区域是空的”这是一条一般消息,但关注第二个文本区域,当用户在第二个文本区域输入数据时,下一个文本区域应该被关注。

 <script>  
 function ad_R(count)
 {
  //Adding and populating table row 
  var row = '<tr>';
  row += '<td>';
  row += '<textarea rows = "8" cols = "18" border ="0" class="input" style="border:none;overflow:visible;width:100%;" id="details'+count+'" nfocus="if (this.value == \'Enter text\') this.value = \'\';" onblur="if (this.value == \'\') this.value = \'Enter text\';" name ="detail'+count+'" class="row_details'+r_count+'">Enter text</textarea></td></tr>';
  }

  $(document).ready(function() {
   cnt += '<table cellspacing="0" cellpadding="0" border="1" width="100%" id="_table">';
   cnt += '<tr>';
   cnt += '<th width="30%">Category</th>';
   cnt += '</tr>';
   for(var i=0;i<6;i++)
   {
      cnt += add_R(6);
     }
    cnt += '</table>';

   });

最佳答案

一般来说,您应该摆脱那些内联处理程序,例如 onblur=

改为对所有这些事件使用 jQuery。例如

$('textarea').bind('focusout', function(e){
   if($(this).val() == "")
      alert('Textarea ' + this.id + ' is empty');
});

恐怕我没有完全理解你想要进一步做的事情,但我敢肯定 您可以使用一些处理程序来管理您的所有需求。

$('textarea').bind('keydown', function(e){
   var $next = $(this).next('textarea');
   if($next) $next.focus();
});

会跳转到下一个文本区域(即使我不知道为什么)

编辑 由于您正在动态添加这些文本区域,因此您可能应该使用 .live() 或 甚至更好的 .delegate() 来绑定(bind)那些事件处理程序。

关于jquery - 聚焦文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2605333/

相关文章:

javascript - 用于排除嵌套后代的 jquery 选择器是什么?

javascript - jQuery 验证器在 ajax 调用后针对不再存在的表单元素进行验证

javascript - JQuery:表单验证 - 没有得到任何结果

javascript - 如何调用这个在控制台中设置为变量的 JS 函数?

jquery - 使用 $.ajax 执行同步请求

jquery - 如何使用 jquery 重写一个类

php - 如何通过ajax提交和验证表单

javascript - 将地址字段转换为坐标

jquery - 使用现有表单将数据发送到 mailchimp,然后重定向

javascript - 通过 highcharts 上的 setData 操作数组进行添加