jQuery元素未传递给Perl CGI [英] jQuery elements not getting passed to perl cgi

查看:73
本文介绍了jQuery元素未传递给Perl CGI的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个html pg,它具有两种形式,并且在提交时调用了perl脚本.但是在脚本中,cgi param没有得到任何值.

I have a html pg which has got two forms and upon submit its calling a perl script. But in the script cgi param is not getting any values.

HTML代码-

<fieldset class="col_4" name="BetweenRange"> <legend>Range Comparison</legend> 
<form action="call_range.pl" method="post" id="range1" target="Range1">
 <table width="100%" border="1">
  <tr>
    <td><input name="r1_1stdate" type="text"  id="from1" required/><input name="r1_2nddate" type="text"  id="to1" required/></td> 
</form>
<form action="call_range.pl" method="post" id="range2" target="Range2">    
    <td><input name="r2_1stdate" type="text" id="from2" required/><input name="r2_2nddate" type="text"  id="to2" required/></td>
  </tr></form>
  <tr>
  <td><iframe id="I3" align="left" name="Range1"  >Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe></td>
   <td><iframe id="I4" align="left" name="Range2" >Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe></td> 
  </tr>
</table>
</fieldset>

脚本在这里-

$(function() {
    $( "#from1" ).datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      changeYear: true,  
      numberOfMonths: 1,
      onClose: function( selectedDate ) {
    $( "#to1" ).datepicker( "option", "minDate", selectedDate );
      }
    });
    $( "#to1" ).datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      changeYear: true,  
      numberOfMonths: 1,
      onClose: function( selectedDate ) {
    $( "#from1" ).datepicker( "option", "maxDate", selectedDate );
      }
    }); 
     <!-- RangeComparison form submit , getting called after selecting 2nd date-->
     $("#to1").change(function() { this.form.submit(); });  });



  $(function() {
    $( "#from2" ).datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      changeYear: true,  
      numberOfMonths: 1,
      onClose: function( selectedDate ) {
    $( "#to2" ).datepicker( "option", "minDate", selectedDate );
      }
    });
    $( "#to2" ).datepicker({
      defaultDate: "+1w",
      changeMonth: true,
      changeYear: true,  
      numberOfMonths: 1,
      onClose: function( selectedDate ) {
    $( "#from2" ).datepicker( "option", "maxDate", selectedDate ); 
      }
    });
     <!-- RangeComparison form submit , getting called after selecting 2nd date-->
     $("#to2").change(function() {
     this.form.submit(); });
  });

Perl代码- 使用严格 使用CGI;

Perl code -- use strict; use CGI;

my $query = CGI->new;
print $query->header;

my $from1 = $query->param('from1'); 
my $to1 = $query->param('to1');

print "</br>Value passed for form1 $from1</br>$to1";
print $query->end_html;

这出了什么问题?如果有人可以提供帮助,我将不胜感激.

Where is this going wrong ? I would appreciate if someone can help.

链接到JSFiddle http://jsfiddle.net/jDd5U/

Link to JSFiddle http://jsfiddle.net/jDd5U/

推荐答案

  1. 您的HTML严重无效.您有不允许使用表格的表格.浏览器错误恢复可能会在尝试生成有效DOM时破坏它们.使用验证器.
  2. 表单控件的name用作提交数据中的键.您正在尝试通过未提交的id查找它.
  1. You HTML is seriously invalid. You have forms where forms are not allowed. Browser error recovery is likely to break them as it tries to generate a valid DOM. Use a validator.
  2. The name of a form control is used as the key in submitted data. You are trying to look it up by the id which isn't submitted.

这篇关于jQuery元素未传递给Perl CGI的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆