제 CS 강사는 모든 JS를 <head>
태그와 다른 곳에 넣지 말아야한다고 주장합니다. 그는 또한 도서관없이 바닐라 자바 스크립트만을 사용한다고 주장합니다. 따라서 준수하기 위해 JS를 사용하여 다음 양식을 작성하여 유효성을 검사했습니다. 문제는 상태 변경 검사기로 감싸면 작동하지 않는다는 것입니다. 내 코드는 HTML DOM 준비 바닐라 자바 스크립트가 작동하지 않습니다.
<!DOCTYPE html>
<html>
<head>
<script src="script.js"></script>
</head>
<body align="center">
<h2>Super Secret Login</h2>
<!--Added an onsubmit action to catch the form in case it isn't valid !-->
<form onsubmit="return j.validate()" name="myForm" action="http://sophist.cs.slcc.edu/~philn/cgi-bin/quick.cgi" method="post">UserID:
<input name="userid" size="15" /> <!-- Remember closing tags on all elements !-->
<br />
<br />Password:
<input name="password" size="15" />
<br />
<br />
<center>
<table cellspacing="20px">
<tr>
<td align="left">
<input id="submit" type="submit" value="Submit" />
</td>
<td align="right">
<input type="reset" value="Clear" />
</td>
</tr>
</table>
</center>
</form>
</body>
</html>
자바 스크립트
function domReady() {
var flag;
var userid = document.myForm.userid;
var pas = document.myForm.password;
this.validate = function() {
if (userid.value === "milton1" && pas.value === "k1mb3r")
{
flag = 1;
} else if (userid.value === "shelly15" && pas === "4ng21") {
flag = 1;
} else {
flag = 0;
}
if (flag === 0) {
alert('There was a problem with your username and password');
return false;
} else {
return true;
}
};
}
// Mozilla, Opera, Webkit
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", function() {
document.removeEventListener("DOMContentLoaded", arguments.callee, false);
var j = new domReady();
}, false);
// If IE event model is used
} else if (document.attachEvent) {
// ensure firing before onload
document.attachEvent("onreadystatechange", function() {
if (document.readyState === "complete") {
document.detachEvent("onreadystatechange", arguments.callee);
var j = new domReady();
}
});
}
지금은 스크립트를 넣어 너무 오래, 함수에 모든 것을 포장이 작동하는 방법으로 제출 호출하지 않고 페이지 하단에 누군가 내가 왜 이런 방식으로 작동하지 않는지 이해할 수 있습니까?
당신의 CS 교사 – NimChimpsky
사람들은 여전히 형태에 CLEAR 버튼을 사용 바보되지 않습니다 :
이 작업을 수행하는 쉬운 방법은, 문서와 같은로드 된 후 트리거됩니다 콜백을 정의하는 것입니다 ? 무엇을 위해? –
DOM이로드되었는지 확인하기 위해 스크립트 태그를 페이지 끝 부분에 배치하는 것이 좋지 않은가요? 그리고 저의 선생님에 대한 저의 개인적인 의견을 보면서, 당면한 질문에 대한 어떤 생각을 가지고 있습니까? – richbai90