繁体   English   中英

JavaScript-sessionStorage如何存储文本区域值?

[英]JavaScript - sessionStorage how to store text area values?

在我的Web表单上,我正在使用HTML5中的sessionStorage功能来存储表单中的值,然后将其显示在“谢谢”页面上,作为对他们查询的确认收据。

我设法存储了除<textarea>元素以外的每种输入类型的值。

我努力了:

sessionStorage.setItem("Special", document.getElementsByName("specialInstructions").value);

但这不会获得在文本区域中键入的数据的值。

这是<textarea>的代码,不包括<form>标记:

<textarea name="specialInstructions" rows="10" cols="50"></textarea>

这是我用于其他表单元素的代码:

if (!rephonenumber.test(document.bookingsform.phonenumber.value)) {
        document.bookingsform.phonenumber.style.border = "1px solid red";
        document.getElementById("phonenumberwarn").innerHTML = "Invalid phone number.";
        document.bookingsform.phonenumber.title = "Please enter a phone number.";
        document.getElementById("phonenumberwarn").style.display = "block";
        valid = false;
    } else {
        document.bookingsform.phonenumber.style.border = "1px inset #EBE9ED";
        document.bookingsform.phonenumber.style.borderRadius = "2px";
        document.getElementById("phonenumberwarn").style.display = "none";
        sessionStorage.setItem("Phone Number", document.bookingsform.phonenumber.value);
    }

为什么此语法不适用于文本区域?

通过此函数document.getElementsByName您将获得匹配元素的数组。

因此,要访问数组的第一个元素并将其存储到localStorage中,您可以执行以下操作。

sessionStorage.setItem("Special", document.getElementsByName("specialInstructions")[0].value);

在这里您可以获得有关getElementsByName的更多信息。

您必须指定要从中获取值的确切元素,因为document.getElementsByName返回一个数组:

document.getElementsByName('name')[0]
document.getElementsByName('name')[1]
document.getElementsByName('name')[2]
...

您需要获取带有头寸的值,请尝试:

document.getElementsByName('name')[0].value;

您可以按ID使用:

document.getElementById('name').value

调用document.getElementsByName()返回元素列表,而不是单个元素。 如果只有一个<textarea> ,则可以使用document.getElementsByName()[0].value 否则,您将需要遍历它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM