2013-06-03 3 views
0

입력란에 일부 정보를 표시하기 위해 자리 표시 자 속성을 사용합니다. 이것을 IE에서 지원하려면 jquery를 사용합니다. 코드는 IE에서 작동합니다. 그러나 사용자가 드롭 다운 목록에서 선택한 항목에 따라 특정 입력 필드의 자리 표시 자 값도 변경해야하며 여기에 문제가 있습니다.jquery가있는 자리 표시 자 텍스트도 IE에서 자동 업데이트로 변경합니다.

자리 표시 자 속성의 값을 조정해도 입력 필드의 값이 자동으로 변경되지 않습니다.

나는이 입력 필드의 값을 결정하는 것입니다 사용하는 코드는 다음과 같습니다

if(!$.support.placeholder) { 
    var active = document.activeElement; 
    $('input[type=text], textarea').focus(function() { 
     if ($(this).attr('placeholder') != '' && $(this).val() == $(this).attr('placeholder')) { 
      $(this).val('').removeClass('hasPlaceholder'); 
     } 
    }).blur(function() { 
     if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) { 
      $(this).val($(this).attr('placeholder')).addClass('hasPlaceholder'); 
     } 
    }); 

그리고 함수에서 내가 할 속성의 텍스트를 변경하기 위해 호출 SetPlaceholderText를 원하는 :

$("#affected-input-field").attr("placeholder", "New placeholder text"); 

그러나이 문제가 해결되지 않습니다.

기본적으로 내가하고 싶은 것입니다 :

<input id="affected-input-field" value="Old placeholder text" placeholder="Old placeholder text" /> 

의사 코드 :

if($('#dropdown').val() == '1') { 
    $(#affected-input-field).SetPLaceholderText("New Placeholder text..."); 
} 

그리고 그 코드가 입력 필드에 표시되는 텍스트를 실행되는 순간부터

새로운 값 :.
<input id="affected-input-field" value="New placeholder text" placeholder="New placeholder text" /> 

하지만 입력 필드가 비어와 이미 작성되지 않았습니다 경우에만

https://github.com/mathiasbynens/jquery-placeholder 코드가 도움이 될까요? 왜냐하면 내가보기에, 코드에는 자리 표시 자의 값을 변경하는 함수가 포함되어 있기 때문입니다.

답변

0

IE 개발자 도구에서 문제가 해결되었지만 어리석은 실수입니다. 콘솔을 보지 않았습니다. 거기에 변수가 올바르게 정의되지 않은 것을 보았습니다 ... epic facepalm.

가 더 정확하게하려면 내 확장 기능을 jQuery를이 자리 표시 자 텍스트가 줄 있었다 변경하기 :

$(this).addClass(placeHolderStylingClass); 

그러나 변수 placeHolderStylingClass가이 기능이 설정되지 않은를,이 바보 복사했다/내 setPlaceholder 함수에서 실수를 붙여 넣습니다.