我的代码是使用JavaScript的HTML,我可以使用JavaScript(客户端)写入文本文件,但这是基于1项。我希望有多种形式,并且不知道最好的方法吗?我的代码如下。我有效地尝试做的是让用户能够为他们的政策参考撰写评论,但我的编码知识并不是很好。
<script language='JavaScript'>
function WriteToFile() {
try {
var t = document.data.comments.value;
var p = document.getElementById('policynum').innerHTML;
var msg = p + " | " + t;
var fso, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
s = fso.OpenTextFile("C:\\Test\\Logfile.txt", 8, true);
s.writeline(msg);
s.Close();
alert("Comment Saved!");
}
catch (err) {
var strErr = 'Error:';
strErr += '\nNumber:' + err.number;
strErr += '\nDescription:' + err.description;
document.write(strErr);
}
}
我的HTML表单如下所示,但实际上我会有一个政策参考列表,用户可以在其中输入他们的评论,评论将保存到文本文件中,并带有相关的政策参考。
<form action="test.hta" method="post" name="data">
<tr align = left><td align = center id = "policynum">A12345678A01</td>
<td align = center id = td1>Testing</td><td align = center id = td1>
<textarea name="comments">this is my comment </textarea><br>
<input type=button value="Save Comment" OnClick="WriteToFile(this.form)">
</form>
<form action="test.hta" method="post" name="data">
<tr align = left><td align = center id = "policynum">A12345678A02</td>
<td align = center id = td1>Testing</td><td align = center id = td1>
<textarea name="comments">this is my comment </textarea><br>
<input type=button value="Save Comment" OnClick="WriteToFile(this.form)">
</form>
我想我需要添加一些内容,以便当OnClick函数与正确的表单相关时,我想我还需要确保每个表单名称都不同?
答案 0 :(得分:1)
我可能错了,但我想保存一条评论和你td#policynum
的字符串吧?
如果是这样,唯一的错误就是你的HTML。我在IE11上尝试了以下操作,它起作用了:
<form action="test.hta" method="post" name="data">
<table>
<tr align="left"></td>
<td align="center" id="policynum">A12345678A01</td>
<td align="center" id="td1">Testing</td>
<td align="center" id="td1"></td>
</tr>
</table>
<textarea name="comments">this is my comment</textarea><br>
<input type="button" value="Save Comment" OnClick="WriteToFile(this.form)">
</form>
在您发表评论后,我想我知道您的代码有什么问题。我以为你只是在你的问题中发布了这个表格。然而...
如果您的浏览器支持querySelector,那将非常简单:
<form action="test.hta" method="post" name="data">
<table>
<tr align="left"></td>
<td align="center" name="policynum">A12345678A01 B1</td>
<td align="center" id="td1">Testing</td>
<td align="center" id="td1"></td>
</tr>
</table>
<textarea name="comments">this is my comment</textarea><br>
<input type="button" value="Save Comment" OnClick="WriteToFile(this.form)">
</form>
因此,您可以按名称动态读取policynum:
function WriteToFile(f) { //added the form you clicked from
try {
var t = f.comments.value;
var p = f.querySelector('[name="policynum"]').innerHTML; //readout the policynum by name tag
var msg = p + " | " + t;
var fso, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
s = fso.OpenTextFile("C:\\Test\\Logfile.txt", 8, true);
s.writeline(msg);
s.Close();
alert("Comment Saved!");
}
catch (err) {
var strErr = 'Error:';
strErr += '\nNumber:' + err.number;
strErr += '\nDescription:' + err.description;
document.write(strErr);
}
}
顺便说一下:你多次使用id
次。这是不允许的。
id属性为元素提供文档范围的唯一标识符。