2011-03-31 4 views
1

자바 스크립트에 몇 가지 문제가 있습니다. ( 공간을 절약하기 위해 상자에 텍스트 필드의 이름을 넣었습니다. 상자,하지만 사용자가 아무것도 작성하지 않은 경우는 다시 만들 수 아니다모바일 용 자바 스크립트 HTML 양식

다음

는 (머리 태그) 스크립트이다.

: 여기
<script type="text/javascript"> resetDefault();{if (this.value.length==0); this.value="default";} </script> 

는 HTML 코드
<input onfocus="this.value=''" onblur="resetDefault()" name="nom" type="text" value="Nom complet" default="Nom complet"/><br><input onfocus="this.value=''" onblur="resetDefault()"name="courriel" type="text" value="Courriel" default="Courriel"/><br> 

"resetDefault is not defined"오류가 계속 발생합니다. 기본값이 입력에 허용 된 속성인지는 모르겠지만 누군가가 텍스트 필드에 집중하면 값이 0이되므로 "값"으로 설정할 수 없습니다.

답변

2

. 첫째, 문법적으로 정확하지 않습니다. 그것은 유효한 구문을 가질 수 있도록 먼저 다음과 같이 코드를

resetDefault(); 
{if (this.value.length==0); 
this.value="default";} 

을 변경해야합니다 :

function resetDefault(){ 
if(this.value.length == 0){ 
    this.value = "default"; 
} 
} 

두 번째 문제는 this는 전역 객체를 참조하는 것입니다, 대신 당신이 원하는 DOM 노드의. 값을 전달해야 변경할 입력을 알 수 있습니다.

onblur="resetDefault(this);" 

및 기능을 변경 파라 받아 있도록 :이 함수에 대한 매개 변수에 전달되도록에 onblur 자바 스크립트를 변경

function resetDefault(that){ 
    if (that.value.length == 0){ 
     that.value="default"; 
    } 
} 

세 번째 문제를 그 "기본값은"다만 것 입력 상자의 값을 "default"문자열로 변경하십시오. 나는 그것이 당신이 원하는 것이라고 의심합니다. 값이 기본 일치 확인은 입력했다 속성 :

that.value = that.getAttribute("default"); 

JSFiddle

+0

OMG ... 놀라운. 정말 고맙습니다! – Ishikawa

+0

첫 번째 문제 대신 모든 문제를 찾는 +1 :-) – MaxVT

0

헤드의 스크립트에서 resetDefault() 이후의 세미콜론을 제거해야합니다. 이제는 정의되지 않은 함수의 함수 호출입니다.

<script type="text/javascript">function resetDefault() { if (this.value.length==0) this.value="default";} </script> 
+0

덕분에 그것을 밖으로 시도를, 난 그냥 것을 발견 ...하지만 여전히 – Ishikawa

0

당신은 지금처럼 resetDefault() 함수를 정의 할 필요가 : 당신의 자바 스크립트 코드 몇 가지 문제가 있습니다

function resetDefault() { 
    // Function stuff here 
} 
+0

죄송합니다 ... 바보 같은 실수를 작동하지 않습니다. 감사! 하지만 여전히 작동하지 않습니다 ... – Ishikawa