我正在尝试编写一个脚本,分支库可以使用该脚本在暑期阅读计划中自动注册夏令营学生。除了一个具有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字段的值,而这个错误是由于我的代码中的其他内容造成的。