2013-04-11 2 views
0

webmatrix를 사용하여 등록 양식 작성, asp.net & 자바 스크립트, SQL Server CE. 사용자 이름 텍스트 상자에 onblur 이벤트를 쓰고 있습니다. 포커스가 텍스트 상자를 벗어나면 데이터베이스에 기존 사용자 이름이 있는지 확인하고 예인 경우 레이블을 표시합니다. "@ {}"블록 내부에 js 코드가 무시되면 코드가 작동하지 않습니다. 그것은 "@ {}"블록 밖에서 잘 작동하지만 그 다음에는 조건이 없습니다. 제발 도와주세요.onblur 이벤트 용 자바 스크립트

<html> 
<head> 
<script> 
function RegUsernameLeave() 
{ 
    @{ 
    regusername=Request.Form["regusername"]; 
    if(!regusername.IsEmpty()) 
     { 
     var db = Database.Open("myshop"); 
     int usercount = db.QueryValue("select count(*) from webusers where [email protected]",regusername); 
     db.Close(); 
     if(usercount!=0){ 
     document.getElementById("msg").innerHTML="Username already exists";} 
     } 
    } 
} 
</script> 
</head> 
<body> 
<label>Username:</label> 
<p><input type="text" id="regusername" onblur="RegUsernameLeave()"/> 
<label id="msg"></label></p> 
</body> 
</html> 

답변

0

나는 여기 어둠 속에서 완전한 찔러 죽겠다.

기본적으로 저는 @ {}이 JS에 인쇄되어 있다고 가정합니다. 따라서 서버 측 코드를 실행하여 JS 변수 userCount와 동일한 값으로 출력 할 수 있다면 JS 변수를 사용하여 오류 메시지 확인 및 출력 (필요한 경우)

@functions{ 
    public int GetUserCount() { 
    string regusername = Request.Form["regusername"].ToString(); 
    if(!regusername.IsEmpty()) 
     { 
     var db = Database.Open("myshop"); 
     int usercount = db.QueryValue("select count(*) from webusers where username='@0'",regusername); 
     db.Close(); 
     return usercount; 
     } 
     return 0; 
    } 
} 

function RegUsernameLeave() 
{ 
    var userCount = @GetUserCount(); 

    if (userCount > 0) 
    document.getElementById("msg").innerHTML="Username already exists"; 

} 
+0

감사합니다. Loren.Great Idea. 하지만 "return usercount;"에서 오류가 발생했습니다. "ASP._Page_test_cshtml.Execute() '가 void를 반환하기 때문에 반환 키워드 뒤에는 객체 표현식을 사용해서는 안됩니다." – Ruby

+0

이봐, 친구, 내가 몇 가지 수정을 했어, 내가 더 가까워지고 있다고 생각한다. – 99823

+0

네. 당신 생각. 하지만 행운을 빌어 요 : ('regusername'을 인식하지 못하기 때문에 'var'를 추가했습니다. "- var regusername = Request.Form ["regusername "];"그래서 오류는 없지만 경고는 나타나지 않습니다. 탭 키를 눌렀을 때 블러가 발생하지 않았습니다. 내가 이것을 으로 확인했습니다. "var userCount = 1; if (userCount> 0) {이 작업을 수행합니다 .....} 잘 작동했는데 어디가 잘못 되었나요? – Ruby