I am trying to write to a file from an html form, however the write part of the javascript doesn't do anything.
Only the validate part of the script seems to be working.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<script LANGUAGE="JavaScript">
function Write(input1, input2)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.OpenTextFile("C:\\test.txt", true);
s.WriteLine(input1 + "," + input2);
s.Close();
}
function validateForm() {
var x1=document.userform.pwd.value;
var x2=document.userform.re_pwd.value;
if (x2 == x1){
Write(document.userform.user.value, document.userform.pwd.value);
}
else{alert("Passwords are not the same, Re-enter password");}
}
</SCRIPT>
<head>
<link rel="stylesheet" href="css/screen.css" media="screen" />
</head>
<body>
<div id="container">
<h2>Create a new account <?php echo "It works!"; ?></h2>
<form id="form1" NAME="userform" METHOD="GET" ONSUBMIT="return validateForm()" ACTION="">
<fieldset><legend>Create a new Account</legend>
<p class="first">
<label for="username">Username</label>
<input type="text" name="user" size="30" />
</p>
<p>
<label for="password">Password</label>
<input type="password" name="pwd" size="30" />
</p>
<p>
<label for="repassword">Re-enter Password</label>
<input type="password" name="re_pwd" size="30" />
</p>
</fieldset>
<p class="submit"><button type="submit" value="Submit">Signup</button></p>
</form>
</div>
</body>
</html>
You can include JavaScript in your HTML in two ways: Writing the code in your HTML. Including it as a link to an external file.
JavaScript has a package named “File System”, which lets the user work with files. In this package, there is a function named “writeFile”, whose sole purpose is to write data to a file specified within its path.
In HTML, JavaScript code is inserted between <script> and </script> tags.
I pulled out my general .HTA
read/write routines and dropped them in here for you.
XHTML
stuff and switched to the HTML 5 doctype
HTML5
compliant.ID
's in your INPUTS. The label
element matches by ID, not name.return false
to your form.General notes:
.HTA
file namewindows
only. <!doctype html>
<html>
<script>
var ie_writeFile = function (fname, data) {
var fso, fileHandle;
fso = new ActiveXObject("Scripting.FileSystemObject");
fileHandle = fso.CreateTextFile(fname, true);
fileHandle.write(data);
fileHandle.close();
};
var ie_readFile = function (fname) {
try {
fso = new ActiveXObject("Scripting.FileSystemObject");
var fso, filehandle, contents;
filehandle = fso.OpenTextFile(fname, 1);
contents = filehandle.ReadAll();
filehandle.Close();
return contents;
} catch (err) {
return null;
}
};
function Write(input1, input2)
{
var s = input1 + "," + input2;
ie_writeFile("test.txt", s);
}
function validateForm() {
var x1=document.userform.pwd.value;
var x2=document.userform.re_pwd.value;
if (x2 == x1){
Write(document.userform.user.value, document.userform.pwd.value);
}
else{alert("Passwords are not the same, Re-enter password");}
}
</script>
<head>
<link rel="stylesheet" href="css/screen.css" media="screen">
</head>
<body>
<div id="container">
<h2>Create a new account <?php echo "It works!"; ?></h2>
<!-- return false added to keep the form from reloading -->
<form id="form1" NAME="userform" METHOD="GET" ONSUBMIT="return validateForm();return false" ACTION="">
<fieldset><legend>Create a new Account</legend>
<p class="first">
<label for="username">Username</label>
<input type="text" name="user" id="user" size="30">
</p>
<p>
<label for="pwd">Password</label>
<input type="password" name="pwd" id="pwd" size="30" />
</p>
<p>
<label for="repassword">Re-enter Password</label>
<input type="password" name="repassword" id="repassword" size="30" />
</p>
</fieldset>
<p class="submit"><button type="submit" value="Submit">Signup</button></p>
</form>
</div>
</body>
</html>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With