-1

我在我的网页上使用了一个 jquery 表添加行插件,它在我的本地桌面上的 Chrome 和 IE9 上运行良好。

但是当我将项目上传到服务器时,它在 Chrome 上仍然可以正常工作,但在 IE9 上没有任何反应,(有一个添加按钮,当我单击它时,没有添加任何行)。

你知道为什么会这样吗?

我使用最新的 jquery 版本。

编辑:

 <table id="tblotherlicence" style="width:800px" cellspacing="2" cellpadding="3">     
        <tr><td class="formtitle" colspan="5">OTHER PROFESSIONAL LICENSURE<a style="font-size:7pt">(e.g.,registered psychiatric nurse; registered massage therapist; registered social worker)</a></td></tr>
        <tr><td class="formlabel">Profession</td>
            <td class="formlabel">Licence Number</td>
            <td class="formlabel">Jurisdiction</td>
            <td class="formlabel">Date of Expiry</td>
            <td class="formlabel"><input class="addrow" type="button" value="Add Row" /></td></tr>
        <tr>
            <td><asp:TextBox ID="Licence1" runat="server"></asp:TextBox>
            </td>
            <td><asp:TextBox ID="LicenceNumber1" runat="server"></asp:TextBox>
            </td>
            <td><asp:TextBox ID="Jurisdiction1" runat="server"></asp:TextBox>
            </td>
            <td><asp:TextBox ID="ExpiryDate1" runat="server"></asp:TextBox></td>
            <td><input class="delrow" type="button" value="Delete Row" /></td>
        </tr>
     </table> 

 <script type="text/javascript">
            $(document).ready(function () {
                $("#<%=ExpiryDate1.ClientID%>").datepicker({
                        yearRange: '1950:2015',
                        changeYear: true, 
                        changeMonth: true,
      257        });
                $(".addrow").btnAddRow(function () {
                    var i;
                    var rowCount = $("#tblotherlicence tr").length;
                    for (i = 3; i <= rowCount; i++) {
                        $("#tblotherlicence tr:nth-child(" + i + ") td:nth-child(4) input[type='text']").attr("id", "MainPlaceHolder_RecordofNursing1_ExpiryDate" + (i - 2));            
                        $("#tblotherlicence tr:nth-child(" + i + ") td:nth-child(4) input[type='text']").removeAttr("class");
                        $("#tblotherlicence tr:nth-child(" + i + ") td:nth-child(4) input[type='text']").datepicker({
                                yearRange: '1950:2015',
                                changeYear: true, 
                                changeMonth: true,
                        });
                    }
                });
                $(".delrow").btnDelRow();
            }); 
    </script>

错误是“SCRIPT1028:预期的标识符,字符串或数字 xxxxx.aspx,第 257 行字符 21”,我已经标记了第 257 行,它只是一个右括号

4

2 回答 2

0

这个“问题”并不特定于 jQuery。IE 不喜欢对象声明中的尾随逗号,而其他浏览器会忽略它。

我建议通过JSLint运行您的代码以捕获此类错误。你可能会得到比在 IE9 中得到的更好的错误消息。你会有更干净的代码!

于 2012-05-15T20:11:38.003 回答
0

去掉后面的逗号changeMonth

$("#<%=ExpiryDate1.ClientID%>").datepicker({
   yearRange: '1950:2015',
   changeYear: true, 
   changeMonth: true // Right here
});

“预期的标识符、字符串或数字”意味着它收到了与预期不同的东西。在这种情况下,由于您有一个逗号,它希望在 之后出现更多内容changeMonth,但您将其关闭。

一些浏览器对这样的拼写错误和小错误往往很宽容,但 IE 更严格。这可能是一件好事(强制执行正确的代码),但这也意味着您会遇到更多错误。

于 2012-05-15T19:59:27.063 回答