我正在开发一个使用 javascript-coder 的 gen_validatorv4 脚本的表单。(过去曾使用它取得巨大成功)。这张表格是为了让我工作的银行的出纳员可以将无效支票的信息发送回我们的会计部门,然后作为 Foxtrot 的 csv 文件被踢出。
我已经在 Firefox 和 Chrome 中测试了该脚本,没有任何问题。但是,在 IE 8 和 9 中,我收到消息“第 1 行:您的帐号必须是一个数字!”,这是一个验证错误,因为没有在该行中输入一个数字,据我所知,它是因为我使用的是数组。当尝试在 maxlen 下执行此操作时,它也会再次出现错误。我正在使用数组(由前面的表单创建),因为有一组可变的检查数量,可以在任何给定时间提交。
任何人都知道如何使它在 Internet Explorer 中正常工作?
更新: http: //jsfiddle.net/syran/xL2EB/10/ 我从 js-methods 添加了 array-0.9.js 文件,这稍微解决了这个问题。它现在可以正确验证直到单选按钮的第一行项目,但此时失败。如果我删除单选按钮检查,那么它将在 num 和 maxlen 验证的第二行失败。请检查小提琴以获取更新的代码,以及添加的第二行。
HTML 代码:
<form name="checkvoid" method="post">
<table id="mytable" border="1">
<tbody>
<tr>
<td nowrap>Branch Number:
<input type="text" name="bid" value="1" size="3">
</td>
<td colspan="6">
<input type="submit" value="Submit Voided Checks">
</td>
</tr>
<tr>
<td align="center">Date</td>
<td align="center">Account #</td>
<td align="center">Serial #</td>
<td align="center">Amount</td>
<td>MO</td>
<td>CC</td>
</tr>
<tr class="check">
<td>
<select name="1[date][month]">
<option value="1">Jan</option>
<option value="2">Feb</option>
<option value="3">Mar</option>
<option value="4" selected>Apr</option>
<option value="5">May</option>
<option value="6">Jun</option>
<option value="7">Jul</option>
<option value="8">Aug</option>
<option value="9">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<select name="1[date][day]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29" selected>29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="1[date][year]">
<option value="2012">2012</option>
<option value="2013" selected>2013</option>
</select>
</td>
<td>
<input type="text" name="1[actnum]" size="10" value="1">
</td>
<td>
<input type="text" name="1[serial]" size="10" value="1">
</td>
<td>$
<input type="text" name="1[amount]" size="10" value="1">
</td>
<td>
<input type="radio" name="1[type]" value="1" CHECKED>
</td>
<td>
<input type="radio" name="1[type]" value="2">
</td>
<tr>
<td colspan="6">
<input type="checkbox" name="certify" value="1">I certify that all the information above is correct.</td>
</tr>
</tbody>
</table>
<input type="hidden" name="action" value="process">
Javascript:
var frmvalidator = new Validator("checkvoid");
frmvalidator.addValidation("bid", "req", "Please enter your Branch Number!");
frmvalidator.addValidation("bid", "num", "Your Branch Number should be a Number!");
frmvalidator.addValidation("1[actnum]", "req", "Line #1: You must enter an account number!");
frmvalidator.addValidation("1[actnum]", "num", "Line #1: Your Account Number must be a number!");
frmvalidator.addValidation("1[actnum]", "maxlen=8", "Line #1: Your Account Number cannot exceed 8 numbers!");
frmvalidator.addValidation("1[serial]", "req", "Line #1: You must enter a serial number!");
frmvalidator.addValidation("1[serial]", "num", "Line #1: Your Serial Number must be a number!");
frmvalidator.addValidation("1[serial]", "maxlen=10", "Line #1: Your Serial Number cannot exceed 10 numbers!");
frmvalidator.addValidation("1[amount]", "req", "Line #1: You must enter an amount!");
frmvalidator.addValidation("1[amount]", "num", "Line #1: Your Amount must be a number!");
frmvalidator.addValidation("1[type]", "selone", "Line #1: You must select either Money Order or Cashier's Check!");
frmvalidator.addValidation("certify", "shouldselchk", "Your must certify that the form is correct!");
我没有在 IE 中使用数组就可以工作:http: //jsfiddle.net/syran/xL2EB/4/