我有一个html文件,它将值传递到java servlet以插入数据库。这是我的代码:
<html>
<head>
<script type="text/javascript">
function masinsert(id)
{
var currentTime=new Date();
var button = document.getElementById("m"+id);
button.onclick="";
button.value="Inserting";
var partnumber = document.getElementById("partnumber"+id).value;
var itemcost = document.getElementById("itemcost"+id).value;
var itemlistprice = document.getElementById("itemlistprice"+id).value;
var sUnitMeasKey = document.getElementById("UnitMeasKey"+id);
var sPurchProdLine = document.getElementById("PurchProdLine"+id);
var sItemClassKey = document.getElementById("itemclasskey"+id);
var UMKselected = getSelected(sUnitMeasKey);
var PPLselected = getSelected(sPurchProdLine);
var ICKselected = getSelected(sItemClassKey);
function handleHttpResponse()
{
if (http.readyState == 4) {
button.value="Imported";
}
}
var http = getHTTPObject(); // We create the HTTP Object
var tempUrl = "\MASInsert2";
tempUrl += "?partnumber="+partnumber+"&"+"itemcost="+itemcost+"&"+"itemlistprice="+itemlistprice+"&"+"UnitMeasure="+UMKselected+"&"+"PurchProdLine="+PPLselected+"&"+"itemclasskey="+ICKselected;
alert(tempUrl);
http.open("POST", tempUrl, true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}
function getSelected(ele)
{
return ele.options[ele.selectedIndex].value;
}
function getHTTPObject(){
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
</script>
</head>
<body>
<form name=bob method=get>
<input type=hidden id="partnumber321" name="partnumber321" value="884910U">
<input type=hidden id="itemcost321" name="itemcost321" value="1027.39">
<input type=hidden id="itemlistprice321" name="itemlistprice321" value="1129.0">
<input type=hidden id="itemdescription321" name="itemdescription321" value="XSERIES 306M SS P4 3.0GHZ 1MB">
<select id="UnitMeasKey321" name="UnitMeasKey321"><option value="112">Each</select>
<select id="PurchProdLine321" name="PurchProdLine321"><option value="18">IBM</select>
<select id="itemclasskey321" name="itemclasskey321"><option value="48">Hardware</select>
<input id="m321" type="button" onclick="masinsert('321')" value="Add">
</form>
</body>
</html>
当我点击按钮时,警报(partnumber)返回null(firefox)或对象(IE)。我是否错误地传递了这些值以供servlet处理?有什么想法吗?它不应该返回值吗?
提前致谢
答案 0 :(得分:3)
Firefox返回null,因为该名称没有ID。如果您不想为输入分配ID,请致电GetElementByName
。
IE正在返回一个对象,因为DOM元素是对象。您需要检查其中一个属性(最有可能value
),以查看它实际设置的内容。
IE不应该返回一个对象,但天真地认为GetElementById
与GetElementByName
相同。
答案 1 :(得分:1)
经典IE错误 ID vs. Name 。您将需要指定和使用id属性,或使用getElementsByName(请注意它将返回匹配的“set”)或form.elements [nameOrIndex]格式。
e.g。
alert(document.forms[myFormNameOrIndex].elements[myElementNameOrIndex].value);
答案 2 :(得分:0)
我看到三件奇怪的事情(可能还有问题):
partnumber.value
GET
方法进行插入操作。这应该是POST
。