2012-04-18 2 views
0

저는 여러 div가 있고 각 div에는 텍스트 상자와 레이블이 있습니다.Jquery div의 현재 레이블을 가져와 채 웁니다.

$(function() { 
    $('input:text').focus(function() { 
    //how do I get the current label and populate with some text? and when clicking on a 
    //different textbox, I want to clear the previous label and just show the current 
    //div's label with some data 
}); 
}); 

예를 들면 : 나는 텍스트 상자 지금까지

스크립트가 .focus에있을 때 라벨에 텍스트를 채울 필요

<div> 
    @Html.TextBoxFor(model => model.Title) 
    <label> 
    </label> 
</div> 
<div> 
    @Html.TextBoxFor(model => model.Name) 
    <label> 
    </label> 
</div> 
<div> 
    @Html.TextBoxFor(model => model.Address) 
    <label> 
    </label> 
</div> 

xx!

답변

2

근무 예 :

http://jsfiddle.net/KhQtx/

HTML :

<div> 
    <input type="text" title="Tittle" value=""/> 
    <label> 
    </label> 
</div> 
<div> 
    <input type="text" title="Name" value=""/> 
    <label> 
    </label> 
</div> 
<div> 
    <input type="text" title="Address" value=""/> 
    <label> 
    </label> 
</div>​ 

JS : DIV의 ID를 제공해야

$('input:text').focus(function() { 
    // clean label 
    $('input:text').next('label').html(""); 

    // get input title 
    var title = $(this).attr('title');    

    // add html to label from input title 
    $(this).next('label').html(title); 
});​ 
+0

정말로 스크린 샷을 게시 할 필요가 없습니다. Google의 브라우저는 페이지를 잘 렌더링합니다. – Blazemonger

+0

정말 저를 믿으십시오. 때때로 정말로 실패합니다. 이전 질문에 많은 코드를 사용하여 답변했으며 모든 코드의 서식을 지정하는 데 시간을 낭비했습니다. –

+0

실제 코드를 넣는 지점은 사람들이 쉽게 복사하여 붙여 넣을 수 있기 때문입니다. 내일 이미지 호스팅 서비스가 제공 될 것이라는 보장이 없습니다. SO가 내장하고있는 코드 포맷 도구를 사용하는 방법을 배우면됩니다. – Blazemonger

0
$(function() { 
    $('input:text').focus(function() { 
     $(this).siblings('label').empty().html('what you want..'); 
    }); 
}); 
0

당신은 사용할 수 parentfind :

var label = $(this).parent().find('label') 
0

시도 :

$('input:text').focus(function(){ 
    $(this).next().text('text here'); 
}); 
0
$('input:text').focus(function() { 
    $('input:text').next('label').html(""); // reset all first 
    $(this).next('label').html("Your text here"); 
}); 

See here

0
$(function() { 
    $('input:text').focus(function() { 
    // To put textboxvalue in label 
    $($(this).parent().find('label')).val($(this).val()); 
    // To put customvalue in label 
    $($(this).parent().find('label')).val("Hi i am a label"); 
}); 
}); 
0
$(function() { 
    $('input:text').focus(function(e){ 
     $('div label').text(""); 
     $(this).next('label').text('SomeText'); 
    }); 
});​ 

Example.

참고 : 당신이 당신의 div의에 클래스 이름을 지정 더 나은 그래서 당신은 피할 수

 $('div.parentDiv label').text(""); 
     $(this).next('label').text('SomeText'); 

같이 당신의 선택 범위를 좁힐 수 있습니다

<div class="parentDiv"> 
    <input type="text" id="Title" /> 
    <label></label> 
</div> 

을 다음과 같이이 될 것이다 다른 div의 라벨이 비어있는 것입니다. 당신을 위해 만들어

+0

없음. "this"를 사용하면 현재 포커스 텍스트 상자가 나타납니다. 부모 선택기를 사용하면 현재 포커스 텍스트 상자 div를 얻고 찾기를 사용하여 레이블을 얻습니다. 따라서 다른 모든 라벨에는 반영되지 않습니다. –

+0

나는 실제 질문을 이해하지 못했고 나의 예도 보지 못했다고 생각합니다. 답안에서 다른 레이블을 어떻게 지우습니까? 내 예를보고 내가 말한 것을 이해하려고 노력하십시오. –

+0

그게 내 실수 였어. 그러나 여전히 각 div에 id를 제공 할 필요는 없습니다. 우리는 각 레이블에 클래스 이름을 부여하고 레이블에 값을 할당하기 전에 쉽게 모든 레이블을 지울 수 있습니다. 예 :

및 첫 번째 줄의 포커스 기능은 $ ("label.Clear")입니다. ("") –

관련 문제