2012-04-20 2 views
1

입력 텍스트 필드에서 블러 이벤트를 사용하면 모든 페이지가 포함되지만 버튼도 제출됩니다. 그렇다면 블러 이벤트에 제출 버튼이 포함되지 않도록하는 방법은 무엇입니까?블러 이벤트도 제출 버튼을 포함/jquery

<form> 
    <input type="text" value="EMAIL ADDRESS_" id="text" /> 
    <input type="submit" val="" id="submit" /> 
</form> 

및 스크립트 : 여기

는 HTML 코드 내 앞의 질문에서이 코드를 가지고

$('form input[type!=submit]').focus(function(){ 
    $(this).val(""); 
    }); 
$('form input[type!=submit]').blur(function(){ 
    if(this.value==""){ 
    $(this).val("EMAIL ADDRESS_"); 
    } 
}); 

하지만 work.Blur 이벤트는 여전히 버튼

제출에 포함되지 않습니다
+1

사이에 따옴표를 누락, 거의 좋은, 사용한다 'placeholder' 속성은 그 텍스트를 지정합니다. – jasonmerino

답변

1

나는 선택 영역에서 하나의 필드를 피하는 대신, 선택을 위해 고려해야 할 항목을 더 잘 지정해야한다고 생각한다. 그렇지 않으면 futue의 누군가/당신이 폼에 새로운 엘리먼트를 추가 할 수 있고, 당신은이 동작 (흐림 및 포커스)이 "방금 추가 된 엘리먼트"에서 오는 것인지 궁금 할 수 있습니다! 당신은 여전히 ​​텍스트를 입력이다 모든 입력 필드를 대상으로하는

$(function(){ 
$("form input[type='text']").focus(function(){ 
     $(this).val(""); 
    }); 
$("form input[type='text']").blur(function(){ 
    if(this.value==""){ 
     $(this).val("EMAIL ADDRESS_"); 
     } 
    }); 
}); 

참고. 따라서 가능한 경우 해당 요소에 클래스 이름을 적용하고이를 선택 자로 사용하여보다 구체적으로 만드십시오. 또는 요소의 id을 사용할 수도 있습니다.

$("form #yourElemntId").focus(function(){ 
    //do stuff 
}); 
+0

이것은 내가 필요한 답변이다. – user1288338

+0

@ user1288338 : 다행히 도움이되었습니다. var에 setTimer = – Shyju

+0

나는이 솔루션 너무 좋은 것 같아요. {타이머 : 널 (null)} $ ('입력 선택') 블러 (함수() { setTimer.timer =에서는 setTimeout (함수() { $ (' #text ') .val ('text '); }, 200); }); $ ("입력 선택 '() 함수() { setTimer.timer =에서는 setTimeout (함수() { $ ('# 텍스트 ') 발 (' ') 초점;.. } 200) 을 }); $ ("# submit"). (function() { clearTimeout (setTimer.timer); // 뭔가 수행 }); – user1288338

0

귀하의 솔루션은 당신이하고있는 모든 사용자가 HTML5를 사용하는 경우 텍스트 필드에 자리를 업데이트하고 있으면 당신은 단지 submit

$("form input[type!='submit']").focus(function(){ 
    $(this).val(""); 
    }); 
$("form input[type!='submit']").blur(function(){ 
    if(this.value==""){ 
    $(this).val("EMAIL ADDRESS_"); 
    } 
}); 
+0

tnx, 답변 해 주셔서 감사합니다. – user1288338

관련 문제