我可以在document.setcookie中返回document.getelementbyid的值吗?

时间:2013-01-10 14:22:06

标签: javascript html asp-classic

<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>

有什么想法吗?

1 个答案:

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