2012-12-17 60 views
0

我工作的一個項目,我有一個div中,我有多個div,每個DIV都有唯一的ID(從DB),每個div包含一個文本框添加評論 像下面JQuery的重點放在文本框或股利

<div id="maindiv"> 
<div id="@item.resid"> 
<p>Content1</p> 
<input type="text" class="txtarea" resourceid="@item.resid"/> 
</div> 
<div id="@item.resid"> 
<p>Content2</p> 
<input type="text" class="txtarea" resourceid="@item.resid"/> 
</div> 
<div id="@item.resid"> 
<p>Content3</p> 
<input type="text" class="txtarea" resourceid="@item.resid"/> 
</div> 
<div id="@item.resid"> 
<p>Content4</p> 
<input type="text" class="txtarea" resourceid="@item.resid"/> 
</div> 

。 。 。 。

我正在通過文本框的按鍵事件添加評論,我遇到的問題是,當我在下側添加對內容的評論時,然後將焦點添加到最上面。 我試圖專注於文本框,甚至下面的div但不工作的:( 是我加評論

$(".txtarea").keypress(function (e) { 
      if (e.keyCode == 13) { 
       if ($(this).val().trim() != "") { 
        var commentText = $(this).val(); 
        var resourceid = $(this).attr('resourceid'); 
        var divId = "." + resourceid; 
        $.ajax({ 
         url: ResourceAjaxUrl.AddNewCommentOnResources, 
         type: "POST", 
         data: JSON.stringify({ resourceID: resourceid, commentText: commentText }), 
         dataType: "html", 
         contentType: "application/json; charset-utf-8", 
         success: function (Result) { 
            $('#maindiv').html(Result); 
            $('#maindiv div#' + divId.split('.')[1]).focus(); 
            $('#maindiv div#' + divId.split('.')[1]).find(".txtarea").focus();          

         }, 
         error: function (msg) { 
          alert("Unable to save comment in"); 
         } 
        }); 
       } 
       else { 
        $(this).val(''); 
        $(this).focus(); 
       } 
      } 
     }); 

我已經看到了開發者工具焦點()線,其工作正常,但仍然沒有對焦的代碼,我想,如果我添加在下行(或上次)評論評論,焦點將停留在而不是去在上面

回答

0

你不能設置重點核實。它是表單元素(即輸入,文字區域,按鈕等)只。

看起來你的問題是,你想找個當在選擇錯誤ID 。:

success: function (Result) { 
            $('#maindiv').html(Result); 
            $('#maindiv div#' + divId.split('.')[1]).find(".txtarea").focus();          

         }, 

$( '' #main DIV#'+ divId.split()[1])發現( 「txtarea」)聚焦();

替換

$( '#maindiv DIV#' + divId.split()[1] '')找到對焦()。( 「txtarea。」);

此外,一旦你有一個唯一的ID,你不需要寫$('#maindiv div#' + divId.split('.')[1])。這足夠了:$('#' + divId.split('.')[1])(ID必須是唯一的整個網頁無論如何,所以沒有必要指定它是一個位於#maindiv內)

+0

先生,在這一行$('#main div#'+ divId.split ( '')[1])發現( 「txtarea。」)聚焦();我試圖專注於文本框 –

+0

ID被顯示爲每預期,我檢查了它的火鳥:) –

+0

是ID是唯一的,我說了,從DB –