Forum Moderators: open
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sample form</title>
<script type="text/javascript">
function displayResult() {
alert(document.myForm.myInput.value);
}
function getFocus() {
if (document.myForm.myInput.value == document.myForm.myInput.defaultValue) {
document.myForm.myInput.value = "";
}
}
function loseFocus() {
if (document.myForm.myInput.value == "") {
document.myForm.myInput.value = document.myForm.myInput.defaultValue;
}
}
</script>
</head>
<body>
<form name="myForm" method="get" onsubmit="return false;" action="">
<input name="myInput" value="Hello world!" onfocus="getFocus();" onblur="loseFocus();"><br>
<input type="button" onclick="displayResult();" value="Display input value">
</form>
</body>
</html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sample form</title>
<script type="text/javascript">
var x = document.myForm.myInput;
function displayResult() {
alert(x.value);
}
function getFocus() {
if (x.value == x.defaultValue) {
x.value = "";
}
}
function loseFocus() {
if (x.value == "") {
x.value = x.defaultValue;
}
}
</script>
</head>
<body>
<form name="myForm" method="get" onsubmit="return false;" action="">
<input name="myInput" value="Hello world!" onfocus="getFocus();" onblur="loseFocus();"><br>
<input type="button" onclick="displayResult();" value="Display input value">
</form>
</body>
</html> <form name="myForm" method="get" onsubmit="return false;" action="">
<input name="myInput" value="Hello world!" onfocus="getFocus();" onblur="loseFocus();"><br>
<input type="button" onclick="displayResult();" value="Display input value">
</form>
<script type="text/javascript">
var x = document.myForm.myInput;
</script>
</body>
</html>
Functions can be defined both in the <head> and in the <body> section of a document. However, to assure that a function is read/loaded by the browser before it is called, it could be wise to put functions in the <head> section.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sample form</title>
<script type="text/javascript">
window.onload=function() { attachBehaviors(); }
// Attach behaviors and say NO to inline JS. :-)
function attachBehaviors() {
var obj = document.getElementById('myInput');
if (obj) {
obj.onfocus=function() {
if (obj.value==obj.defaultValue) { obj.value=''; }
}
obj.onblur=function() {
if (obj.value=='') { obj.value=obj.defaultValue; }
}
} // if obj
var frm = document.getElementById('myForm');
if (frm) {
frm.onsubmit=function() { return displayResult(); }
}
} // function
//
function displayResult() {
var obj = document.getElementById('myInput');
if (obj) {
alert((obj.value=='')?'No Value!':obj.value);
}
return false;
}
</script>
</head>
<body>
<form name="myForm" id="myForm" method="get" action="">
<p>When you move to the button you blur. So to see the effect of
"no value" click into the text field and press enter.</p>
<p><input name="myInput" id="myInput" value="Hello world!"></p>
<p><input type="submit" value="Display input value"></p>
</form>
</body>
</html>
^^ @ Fotiman: you've said this often, how is it superior to window.onload = function() {};? Just curious.
Works well, but harder to understand for a newbie like me!
function displayResult() {
var obj = document.getElementById('myInput');
if (obj) {
alert((obj.value=='')?'No Value!':obj.value);
}
return false;
}
function checkForm() {
var obj = document.getElementById('myInput');
var msg = '';
if (obj) {
if (obj.value=='') { msg = 'The My Input field is required.'); }
}
if (msg != '') { alert(msg); return false; }
return true;
}