如何在javascript keyUp事件上发送2个值

时间:2010-11-14 10:22:34

标签: php javascript dom

我想使用javascript来计算值,而无需按下提交按钮。使用javascript onkeyup事件。 是否可以将html表单中的2个或更多值发送到javascript函数?

这是在表格上加载必要细节的代码:

echo "<input type=\"hidden\" name=\"ids[]\" value=\"$id\">"; 
echo "<input type=\"hidden\" name=\"qoh[]\" value=\"$qtyhand\">";   
echo "<td><input type=\"text\" name=\"qbuys[]\" id=\"qbuys\" value=\"$qtytbuy\"  onKeyUp=\"proc(this.value)\"></td>"; 

我尝试过(我只做了),但没有用,这样做的正确方法是什么,是否可能?:

onKeyUp=\"proc(this.value && document.cartform.qbuys[].value);\"

这是javascript,它充当表单和php文件之间的中介,用于计算小计:

function proc(str,str2)
{
if (str=="")
  {
  document.getElementById("compz").innerHTML="";
  return;
  }  
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
else
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("compz").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","compz.php?qbuys="+str&prodid="+str2,true);
xmlhttp.send();
}

虽然我不确定它是否有效,但因为我之前只使用了1个参数。

2 个答案:

答案 0 :(得分:1)

首先,我会recommend using jQuery而不是滚动你自己的AJAX界面。它经过互联网巨头的试用和测试。以下是适用于您的结构的jQuery文档的简单示例:

$('#compz').load('some_page.php');

该行会将“some_page.php”返回的任何内容加载到“compz”DIV中。所以让我们重新编写你的函数:

proc = function(str1) {
    var str2 = $('#FormVariableThatContainsProdID').value;
    $('#compz').load('compz.php?qbuys=' + str1 + '&prodid=' + str2);
}

这样你的PHP保持不变。

答案 1 :(得分:0)

逗号分隔函数参数。

onKeyUp=\"proc(this.value, document.cartform.qbuys[].value);\"