【问题标题】:How to pass parameters to javascript function that are defined outside the form tag?如何将参数传递给在表单标签之外定义的 javascript 函数?
【发布时间】:2014-12-04 06:19:00
【问题描述】:

我正在尝试将参数传递给在标记之外定义的 javascript 函数。但是当我尝试在 javascript 函数中使用它时,它显示未定义。我正在使用警报来打印 jsp 页面中的值和在 javascipt 函数中...请帮助

<html>
<script type="text/javascript">
js_valueDate = '<%=valueDate%>'; 
alert(js_valueDate)     **//displays correct value here**

 </script>
   <body>
   <form>
 ....some html...
     <td width=27%><input type=text name="ValDate" 
onchange = "javascript:validateDate(document.f1.ValDate,js_valueDate);"></td>   
......some html....                                                                                               
  </form>
  </body>
  </html>

这是我的 javascript 函数:

function validateDate(ValDate,origValDate) {
  var valueDate=ValDate.value;
  var OrigvalueDate=origValDate.value;
  confirm(valueDate);
  confirm(OrigvalueDate);  **//displays undefined here**
  var hh=replaceAll(valueDate,'-','');
  confirm(hh);

  if (replaceAll(valueDate,"-","")<=valueDate<=replaceAll(OrigvalueDate,"-","")) {
    return true;
  } else {
   alertPopup("Please enter a valid value date");
   document.f1.ValDate.focus();
   return false;
  }

}

【问题讨论】:

  • 只需将包含javascript函数的脚本标签放在页面顶部的表单标签之前并检查..

标签: javascript html jsp jsp-tags


【解决方案1】:

由于您传递的是值本身,因此不需要声明
var OrigvalueDate=origValDate.value;
这是我写的一个小例子,它解释了这两种情况

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <title>Check </title>
  <script>
  function display(v)
  {
  var d=v.value;
    alert(v);
    alert(d);
  }
   jval="qwerty";
  </script>
  </head>
  <body>
    <input type="button" value="check" onclick="javascript:display(jval)"/>
  </body>
</html>

【讨论】:

    【解决方案2】:

    试试这样的。这会帮助你

    <html>
        <script type="text/javascript">
        js_valueDate = '<%=valueDate%>'; 
        alert(js_valueDate)     **//displays correct value here**
    
    var ValidationHandler = {
    
    validateDate:function(ValDate,origValDate){
      var valueDate=ValDate.value;
      var OrigvalueDate=origValDate.value;
      confirm(valueDate);
      confirm(OrigvalueDate);  **//displays undefined here**
      var hh=replaceAll(valueDate,'-','');
      confirm(hh);
    
    
    
       if (replaceAll(valueDate,"-","")<=valueDate<=replaceAll(OrigvalueDate,"-",""))
      {
        return true;
      }
        else
      {
       alertPopup("Please enter a valid value date");
       document.f1.ValDate.focus();
        return false;
      }
    
    }
    };
    
     </script>
       <body>
       <form>
     ....some html...
         <td width=27%><input type=text name="ValDate" 
    onchange = "javascript:ValidationHandler.validateDate(document.f1.ValDate,js_valueDate);"></td>   
    ......some html....                                                                                               
      </form>
      </body>
      </html>
    

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2016-12-13
      • 2011-07-05
      • 1970-01-01
      • 2020-07-06
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      相关资源
      最近更新 更多