0

我正在尝试使用此功能:

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 和单击时的文本框吗?如果没有任何关于为什么它不起作用的建议?

4

2 回答 2

1

如果我用 javascript 隐藏文本输入元素,其他 javascript 函数仍然可以访问输入的值吗?

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


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

  • <button onclick="storagecalc">不执行任何操作,您将需要调用函数:<button onclick="storagecalc();">. 只有当用js给onclick 属性赋值监听器时,才需要使用函数对象( document.getElementById("smtbxno").onclick = storagecalc;)。
  • 在函数本身中,您使用的变量quantityundefined(并引发异常)。我不知道如何解决这个问题。
于 2012-07-18T22:23:03.800 回答
1

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

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

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

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

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

于 2012-07-18T22:59:26.107 回答