用WWW :: Mechanize填充只读表单(jQuery datepicker)的简单方法?

时间:2014-07-03 16:51:07

标签: javascript forms perl datepicker mechanize

我正在尝试编写一个脚本,分支库可以使用该脚本在暑期阅读计划中自动注册夏令营学生。除了一个具有readonly属性的单个表单

之外,我使用WWW :: Mechanize
<input name="form_readtime_date" id="form_readtime_date" type="text" readonly="true" />

表单由jQuery Datepicker填写

/* create datepicker */
jQuery(document).ready(function() {
    jQuery('#form_readtime_date').datepicker({
        dateFormat: 'yy-m-d',
        numberOfMonths: 3,
        //altFormat: "yymmdd",
        //dateFormat: 'DD, MM, d, yy',
        //minDate: '0d',
        //maxDate: '+2yy',
        //minDate: new Date(),
        //maxDate: new Date(),
        //onSelect: setFocus('#form_readtime_date');
        minDate: new Date(2014,5,18),
        maxDate: new Date(2014,6,2),

        //constrainInput: true,
        beforeShowDay: nationalDays
    });

    //$("#form_readtime_date").attr( 'readOnly' , 'true' );
});

有什么方法可以忽略这一事实,即通常由datepicker填充,并使用mechanize填充表单?现在正在运行

$login_form = $mech->form_number(2);
... #Set some other fields
local $^W = 0;
$mech->field("form_readtime_date",$date,1);
$mech->click_button(value=>"Add Reading Time");

不会抛出任何错误,但似乎没有提交表单。

我知道Mechanize无法处理Javascript,但似乎这并不重要,因为脚本运行的最终结果是改变HTML表单的值。我不能告诉Mechanize忽略&#34; readonly&#34;属性,更改值,并提交表单?显然是机械化lets you do this的Python版本。在任何情况下,发送回服务器的结果都是相同的。 (没有任何警告没有任何作用,我坚持认为是因为some thread建议它。)

我意识到我可能会使用WWW :: Mechanize :: Firefox(或其他东西)来做到这一点,但是我很难安装它,看起来我应该能够做到这一点与Mechanize。感谢您的任何帮助,您可以提供。

更新,事实证明Mechanize很乐意更改readonly字段的值,而这个错误是由于我的代码中的其他内容造成的。

0 个答案:

没有答案