은 기본적으로 내 HTML은 다음과 같습니다 클릭 제출 테이블에 텍스트를 추가하는 것은 :자바 스크립트 확인 및 동적으로 버튼이
양식이 제출<form method="post" name="htmlform" onsubmit = "checkFields()">
<table style="width: 479px;" border="30" cellspacing="3" cellpadding="10">
<tbody>
<tr>
<td valign="top"><span id="firstNameSpan" >First Name *</span></td>
<td valign="top"><input type="text" name="first_name" id="first_name"
size="30" maxlength="50" /></td>
</tr>
<tr>
<td valign="top"><span id = "lastNameSpan" >Last Name *</span></td>
<td valign="top"><input type="text" name="last_name" size="30" maxlength="50"/>
/td>
</tr>
<tr>
<td style="text-align: center;" colspan="2"><input type="radio" name="sex"
value="male" /> Male <input type="radio" name="sex"
value="female" /> Female</td>
</tr>
<tr>
<td style="text-align: center;" colspan="2"><input type="submit" value="submit"
/></td>
</tr>
</tbody>
</table>
</form>
, FIRST_NAME 텍스트 필드는 경우, 빈 태그의 onsubmit() 이벤트를 확인하는 경우 그러면 왼쪽에 레이블 또는 범위가 추가되어 "이름 *"+ "성을 입력해야합니다"라는 출력과 성 및성에 유사하게 출력됩니다.
문제는 테이블의 텍스트가 appendchild로 업데이트되지 않는다는 것입니다. 디버깅을 위해 경고 문구를 동봉하면 메시지가 추가되어 사라집니다.
아래 JavaScript 코드는 onsubmit = "checkFields()"에 대한 것입니다. 사전에
function checkFields() {
var firstName = document.getElementById("first_name").value;
var lastName = document.getElementById("last_name").value;
if (firstName == "") {
//<span style='color:red'> Please enter a first name </span>
var nameHint = " Please enter a first name";
var node = document.getElementById("firstNameSpan");
//alert(node.appendChild(document.createTextNode(nameHint)));
//not working
node.appendChild(document.createTextNode(nameHint));
} if (lastName == "") {
//additional code
}
}
덕분에, 당신의 도움이 많이 감사합니다. 자바 스크립트 디버거도 있습니까?
안부
데이비드 D
당신은 함수에서 'FALSE'를 반환하는
데이비드 감사? 양식 제출을 중단하려면 그렇게해야합니다. onsubmit =' –
에서'='주위의 공백을 제거하십시오. 브라우저에 내장 된 JS 디버거가 있습니다. Chrome/Safari에는 메뉴에 개발자 도구가 있습니다. 파이어 폭스에는 콘솔과 파이어 버그 (Firebug) 익스텐션, IE의 F12가있다. –
아직 고려하지 않았고 요구 사항에서 허용하는 경우 클라이언트 측 작업을 수행하기 위해 jQuery를 조사해야합니다. 유효성 검사 플러그인조차 있습니다 : http://docs.jquery.com/Plugins/Validation –