使用Javascript获取表单值

时间:2013-12-15 22:08:30

标签: javascript ajax forms

我有一个JavaScript函数。我需要从表单中获取值并将其发送到另一个页面。通过使用表单的“onclick”属性,我可以发送一个值。但我也需要发送一个文本框值。

这是JavaScript代码:

<script>
function func(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","record.asp?q="+str,true);
xmlhttp.send();
}
</script>

这是表格:

<form id="record">
  value:
<select name="blabla">
  <%
  do until rs.eof
  id=rs("JobId")
  name=rs("JobName")
  rs.movenext
  %>
  <option value=<%=id%>><%=name%></option>
  <% loop %>
  </select>
  <label for="iddepartment">&nbsp;&nbsp;department name: </label>
  <input type="text" name="inputname" id="inputid" />
  <input type="button" name="addDepartment" id="addId" value="ADD" onclick="func(<%=id%>)" />
</form>

如您所见,我可以成功将“id”值发送到record.asp。但我需要发送用户在文本输入中输入的值。我尝试了一些但不能成功。我该如何更改JavaScript函数以及如何更改表单?

2 个答案:

答案 0 :(得分:0)

要通过GET发送多个值,您可以使用&amp;结束。

示例:

我想发送A(45)和B(303)

结果:?A = 45&amp; B = 303

答案 1 :(得分:0)

您可以将查询字符串添加到类似record.asp?name=value&name=value

的网址中

此外,我想你想从表单中获取值:

document.forms.<form_id>.<field_name>.value

请参阅替换为值

的asp代码的完整示例
<html>
<head>
<script type="text/javascript">
    function myFunc(str) {

        var blabla = document.forms.record.blabla.value,
            inputname = document.forms.record.inputname.value;

        if (str === undefined || str.length === 0) {
            document.getElementById("txtHint").innerHTML = "";
            return false;
        }

        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        }
        else {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("txtHint").innerHTML = 
                                                        xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET", "record.asp?q=" + str + "&blabla=" 
                      + blabla + "&inputname=" + inputname, true);
        xmlhttp.send();
        return false;
    }

</script>
</head>

这是身体:

<body>
<div id="txtHint"></div>
<form id="record" onsubmit="return myFunc(7);" method="POST" action="#">
    <select name="blabla">
        <option value="1">Foo</option>
        <option value="2">Bar</option>
    </select>
    <label for="iddepartment">&nbsp;&nbsp;department name:</label>
    <input type="text" name="inputname" id="inputid" />
    <input type="submit" name="addDepartment" id="addId" value="ADD" />
</form>
</body>