2012-05-03 2 views
2
 $('input[class*="defaulttext"]').each(function() { 

        this.value = $(this).attr('title'); 
        $(this).addClass('defaultclass'); 

        $(this).focus(function() { 
         if (this.value == $(this).attr('title')) { 
          this.value = ''; 
          $(this).removeClass('defaultclass'); 
         } 
        }); 

        $(this).blur(function() { 
        if (this.value == '') { 
         this.value = $(this).attr('title'); 
         $(this).addClass('defaultclass'); 
        } 
       }); 


       }); 

기본적으로 텍스트 상자의 배경 텍스트 효과가 추가됩니다 (제목 사용). 일단 선택되면 텍스트가 사라집니다.Jquery는 제출시 텍스트 상자에서 기본 텍스트를 제거합니다.

이제 선택적 필드에 문제가 있습니다. 사용자가이 필드를 편집하지 않으면 기본 배경 텍스트가 양식과 함께 제출됩니다. 폼이 제출되면 편집되지 않은 필드의 값을 재설정해야합니다. 어떤 아이디어가 이것을 어떻게?

양식 제출시 제목 = 값이 맞는지 확인하십시오. 그렇다면 ''로 설정하십시오.

+1

, 당신이 실제로 설정하는 필드의 값 HTML5 [자리 표시 자] (https://developer.mozilla.org/en/HTML/Element/input#attr-placeholder) 속성을 사용하지 않는 이유는 무엇입니까? – j08691

+0

j08691 - 좋은 제안이지만, 대부분의 사용자는이를 지원하는 최신 브라우저를 사용하지 않는다는 것을 기억해야합니다. – naspinski

+0

자리 표시 자 특성에 익숙하지 않았습니다. 그것에 대해 감사 할 것입니다. – domino

답변

1

를 사용하여 편집 필드를 표시 할 수 있습니다, 당신은 할 수 :

$("#yourForm").submit(function() { 
    $('input[class*="defaulttext"]').val(""); 
}; 
당신은 "배경 텍스트"를 추가하지 않을
+1

채워진 입력을 포함하여 모든 입력이 비어 있지 않습니까? – aldux

+0

Nah는 'blur'함수에서 값이있는 경우 기본 클래스를 추가 및 제거하기 때문입니다. – mattytommo

+0

맞습니다! 나는 그것을 놓쳤다. – aldux

0

값을 확인하고 title = value인지 확인할 수 있습니다. 또는 양자 택일로, 당신은 당신이 가지고있는 코드를 기반으로 jQuery.data()

0
$("#yourForm").submit(function() { 
    $('input.defaulttext').each(function() { 
     if($(this).val() === $(this).attr('title')) { $(this).val(''); } 
    }); 
}; 
관련 문제