2013-12-15 35 views
1

我有一個JavaScript函數。我需要從表單中獲取值並將其發送到其他頁面。通過使用表單的「onclick」屬性,我可以發送一個值。但是我也需要發送一個文本框的值。用Javascript獲取表單值

這是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函數,以及如何更改表單?

回答

0

您的查詢字符串添加到URL,像這樣record.asp?name=value&name=value

而且我想你想從形式取得值:

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

請參閱使用值

<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> 

這裏替換ASP代碼的完整的例子是身體:

<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> 

+0

robbmj它完美的作品。謝謝。在這種情況下,函數實際上並不需要像(7)那樣的值,因爲它需要從「document.forms.record.blabla.value」中獲得所需的內容。無論如何,它工作得很好。 – user3105451

0

要通過GET發送多個值,您可以用&來連接。

例子:

我想發A(45)和B(303)

結果:A = 45 & B = 303