<input type=button value='Do Stuff' onClick='document.cookie = "Note_<% Response.Write(arrTest(0,i)) %> = ' + (Document.getElementById("StuffTest<% Response.Write(arrTest(0,i)) %>").value) + '"'>
我在这里要做的是当用户点击按钮时,我想要一个用值创建的cookie:Note_(arrTest的值)=(文本框的值)。
下面的代码很好用:
<input type=button value='Do Stuff' onClick='document.cookie = "Note_<% Response.Write(arrTest(0,i)) %> = Awesome!"'>
它创建一个值为的值的cookie:Note_(arrTest的值)=太棒了!
将文本框的值放入Cookie中,我做错了什么?我假设它与所有那些令人困惑的单/双引号有关,所以我认为我只是陷入了错字,但我认为我实际上不能做我想做的事情。< / p>
有什么想法吗?
答案 0 :(得分:3)
document.getElementById
都有document
。您的代码示例使用Document
(使用大写D
),这将失败。
另外,onClick
属性中的引号不太正确。最好避免在这些属性中添加任何重要代码。相反,定义并调用一个函数,如下所示:
<input type=button
value='Do Stuff'
onClick='setCookie("<% Response.Write(arrTest(0,i)) %>);'>
...其中函数(在<script>
标记内或在一个引用的文件中)如下所示:
function setCookie(name) {
document.cookie = "Name_" + name + "=" + document.getElementById("StuffTest" + name).value;
}
根据arrTest(0,i)
的内容,您可能需要在输出时对其进行HTML编码,因为您要将其输出为HTML(是的,onXYZ
属性中的代码是HTML ,就像任何其他属性的值一样,例如<
需要<
)。