2013-03-24 86 views
0

当组合框的选择更改时,我希望将特定的数组项设置为输入标签的值。在更改组合框时在输入框中插入数组项目

<%@ page language="java" import="java.util.*;" pageEncoding="ISO-8859-1"%> 

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <html> 
     <head> 
     </head> 
    <script language="javascript"> 

    function check() 
     { 
      if(!validate()) 
       return false; 
     } 

    function validate() 
     { 
      if (document.form.amount.value <=0) 
      { 
       alert ("Please enter valid loan amount."); 
       return false; 
      } 
      else 
       return true; 
     } 

     var arr = new Array(); 
     arr[0] = new Array("-select-", "10.0","10.5", "12.0"); 

     function change(combo1) { 
      document.getElementById("rate").style.visibility = "visible"; 
      var sel = document.getElementById("combo1"); 
     var val = document.getElementById("rate").value; 
     for(var i = 0, j = sel.options.length; i < j; ++i) { 
      if(sel.options[i].innerHTML == val) { 
       sel.selectedIndex = i; 
       break; 
      } 
     } 
    } 

} 
    </script> 
     <jsp:include page="include.jsp"></jsp:include> 

     <body> 
      <br> 
      <form action="PaymentServlet.do" name="form" method="post" 
       ONSUBMIT="return check()"> 
       <fieldset> 
        <legend> 
         <font style="font-family: sans-serif" size="4px" color="Megenta">Online Loan 
          Application Page</font> 
        </legend> 
        <br /> 

        Loan Type 
        <select name="combo1" onchange="change(this);"> 
         <option value="0"> 
          -Select- 
         </option> 
         <option value="1"> 
          Home Loan 
         </option> 
         <option value="2"> 
          Education Loan 
         </option> 
         <option value="3"> 
          Car Loan 
         </option> 
        </select> 
        <br /> 

        Interest Rate(%)<input type="text" name="rate" style="visibility: hidden;"> 
        <br /> 
        Loan Amount 
        <input type="text" name="loanamount" /> 
        <br /> 
        <input type="submit" name="go" value="o Go o" /> 
       </fieldset> 
      </form> 
     </body> 
    </html> 

取决于贷款型我想选择来自阵列的相应利率和希望此数组项将被用作输入的标记,其名称=“速率”的值。

+0

和你有什么问题? – 2013-03-24 19:22:23

+0

user @ mr.VVoo无法获取输入标签值中的数组值。 – rahul 2013-03-24 19:24:12

回答

0

为了得到一个组合框的值,你需要做到以下几点:

var val = sel.options[sel.selectedIndex].value; 

sel是您的组合框

0

不能给予名称paramater使用document.getElementById("elementid")。参数必须是元素名称的id

实际上,您不需要使用document.getElementById,因为您将this作为参数更改函数返回。 this指的是实际的元素。

所以,你的变化函数应该是这样的,

function change(combo1) { 
     document.getElementById("rate").style.visibility = "visible"; 
     document.getElementById("rate").value = arr[combo1.selectedIndex]; 
} 

你的数组定义是错误的为好。正确的是在这里,

var arr = new Array(); 
arr[0] = new Array("-select-", "10.0","10.5", "12.0"); 

var arr = new Array("-select-", "10.0","10.5", "12.0"); 

最后不要忘记加上id属性的速率输入,

<input type="text" id="rate" name="rate" style="visibility: hidden;"> 

这里是完整的代码和一个DEMO

<script language="javascript"> 

function check() 
    { 
     if(!validate()) 
      return false; 
    } 

function validate() 
    { 
     if (document.form.amount.value <=0) 
     { 
      alert ("Please enter valid loan amount."); 
      return false; 
     } 
     else 
      return true; 
    } 

    var arr = new Array("-select-", "10.0","10.5", "12.0"); 

    function change(combo1) { 
     document.getElementById("rate").style.visibility = "visible"; 
     document.getElementById("rate").value = arr[combo1.selectedIndex]; 
} 

</script> 
    <body> 
     <br> 
     <form action="PaymentServlet.do" name="form" method="post" 
      ONSUBMIT="return check()"> 
      <fieldset> 
       <legend> 
        <font style="font-family: sans-serif" size="4px" color="Megenta">Online Loan 
         Application Page</font> 
       </legend> 
       <br /> 

       Loan Type 
       <select name="combo1" onchange="change(this);"> 
        <option value="0"> 
         -Select- 
        </option> 
        <option value="1"> 
         Home Loan 
        </option> 
        <option value="2"> 
         Education Loan 
        </option> 
        <option value="3"> 
         Car Loan 
        </option> 
       </select> 
       <br /> 

       Interest Rate(%)<input type="text" id="rate" name="rate" style="visibility: hidden;"> 
       <br /> 
       Loan Amount 
       <input type="text" name="loanamount" /> 
       <br /> 
       <input type="submit" name="go" value="o Go o" /> 
      </fieldset> 
     </form> 
    </body> 
0

如果你的数组定义是像

arr[0] = new Array("-select-", "10.0","10.5", "12.0"); 

然后

function change(combo1) { 
    document.getElementById("rate").style.visibility = "visible"; 
    var rate = document.getElementById("rate"); 
    rate.value = arr[0][combo1.selectedIndex]; 
}