如果我用javascript隐藏了一个文本输入元素,那么其他javascript函数仍然可以访问输入到其中的值

If I hide a text input element with javascript can other javascript functions still access a value entered into it?

本文关键字:输入 javascript 其他 函数 访问 隐藏 元素 如果 文本 一个      更新时间:2023-11-26

我正在尝试使用这个函数:

function storagecalc(){
var thediv=document.forms["boxes"];
var boxno=thediv.elements["numbofboxes"];
var howmany =0;    //If the textbox is not blank    */
if(boxno.value!="")    
{        
howmany=parseInt(quantity.value);    
}
return howmany;
document.getElementById('numberprice').innerHTML = "£"+howmany;
}

获取此处输入的值:

<form action="" id="boxes">
<input type="text" id="numbofboxes" value="" name="boxnumber"/>
<button id="smtbxno" onclick="storagecalc">
<img src="images/tick.gif" alt="proceed"/>
</button>
</form>

并在此处显示:

<div id="grandtotal">
<p class="calctitles">
Grand Total
</p>
<p id="numberprice">
</p>
</div>

当我在文本框中输入一个值并单击按钮时,什么都没有发生,这是因为按钮还有jQuery,它在单击时隐藏自己和文本框吗?如果没有任何建议说明为什么它不起作用?

如果我用javascript隐藏一个文本输入元素,其他javascript函数还能访问输入到其中的值吗?

每一个能够获得对输入元素引用的javascript(通过一个变量,带有DOM选择器)都可以访问其值。该元素的可见性对任何这些操作都没有影响。只有当您将它从DOM分离时,其他函数才能使用DOM方法选择它。


好的,你给我们的文件中有一些错误:

  • <button onclick="storagecalc">不执行任何操作,您需要调用函数:<button onclick="storagecalc();">。只有当使用js将侦听器分配给onclick属性时,才需要使用函数对象(document.getElementById("smtbxno").onclick = storagecalc;
  • 在函数本身中,您使用一个变量quantity,即undefined(并引发异常)。我不知道该怎么解决

您正在分配函数,但没有调用它:

<button id="smtbxno" onclick="storagecalc()" ... >...</button>
------------------------------------------^

此外,表单元素集合的成员应该由name引用,而不是由id引用。

var boxno=thediv.elements["boxnumber"];

我不明白为什么你有一个不同的名称和ID,这会混淆IE,至少在旧版本中,IE不知道区别。