2
<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_(value of arrTest) = Awesome!

将文本框的值放入 cookie 中我做错了什么?我假设它与所有那些令人困惑的单引号/双引号有关,所以我认为我只是有错字盲,但我的一部分认为我实际上不能做我在这里想做的事情。

有什么想法吗?

4

1 回答 1

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,就像任何其他属性的值一样,因此例如<需要是&lt;)。

于 2013-01-10T14:24:57.260 回答