JQUERY大侠们帮俺看看这段代码,有点小毛病怎么改

发布于 2022-09-08 04:04:02 字数 17227 浏览 10 评论 0

在FIREFOX中点添加按钮,可以在第一个表中添加行并且给第一列加上序号,点击每行的删除按钮可以删除此行,并对序号列重新排序,
现在有点小毛病,就是当第一个表添加到3、4行以上时,按浏览器的刷新,然后会在第二个表中某两个INPUT中出现数字,找了N久也没找到是哪的问题。

哪位JQUERY大侠搭把手。先谢谢了。

代码如下:

  1. <html>
  2. <head>
  3. <script type="text/javascript" src="jquery.js"></script>
  4. </head>
  5. <body>
  6. <script type="text/javascript">
  7. $(document).ready(function(){
  8.     //取得BODY体第一行中所有INPUT的ID,赋给数组id_array
  9.     row_first_input = $("tr#model_tr:first").find("input");
  10.     id_array = new Array();
  11.     row_first_input.each(function(a){
  12.     id_array[a]=$(this).attr("id");
  13.     });
  14.     // 重排行号
  15.     recount();
  16.    
  17.     /**
  18.      * 添加行
  19.      *
  20.      **/
  21.     $("button[id='insert']").click(function(){
  22.         // 选择源
  23.         old = $("#model_tr");
  24.         // 得到复制结果(连事件一起复制)
  25.         nobj = old.clone(true);
  26.         // 从尾部加入tbody
  27.         $("#main_table").append(nobj);
  28.         recount();
  29.     });
  30.     /**
  31.      * --删除行
  32.      *
  33.      **/
  34.     $("button[id='delrow']").click(function(){
  35.         // 取得父元素的父元素
  36.         b = $(this).parent().parent();
  37.         // 删除
  38.         b.remove();
  39.         recount();
  40.     });
  41.     /**
  42.      * --重排
  43.      *
  44.      * 排列行的序号和各行的input名称
  45.      * 如果行数为1最后的删除按钮不显示
  46.      **/
  47.     function recount(){
  48.         // 取得ID为model_tr的所有行
  49.         model_trs = $("tr#model_tr");
  50.         // each中function的参数为变量数组c的索引
  51.         // 循环行
  52.         model_trs.each(function(a){
  53.             aa = $(this);
  54.             if(model_trs.length==1){
  55.                 $(this).find("button").hide();
  56.             }else{
  57.                 $(this).find("button").show();
  58.             }
  59.             $(this).css("background-color",['#ccc','#fff'][(a+1)%2]);
  60.             inputs = $(this).find("input");
  61.             var id = a+1;
  62.             inputs.first().attr("value",id);
  63.             // 循环列并修改input的id
  64.             inputs.each(function(b){
  65.                 $(this).attr("id",id_array[b]+id);
  66.             });
  67.         });
  68.         // 绑定input回车换焦点
  69.         $("input:text:first").focus();
  70.         var $inp = $("input:text");
  71.         $inp.bind('keydown', function (e) {
  72.             var key = e.which;
  73.             if (key == 13) {
  74.                 e.preventDefault();
  75.                 var nxtIdx = $inp.index(this) + 1;
  76.                 $(":input:text:eq(" + nxtIdx + ")").focus();
  77.             }
  78.         });
  79.     }
  80.     /**
  81.      * 绑定所有数字输入框
  82.      *
  83.      **/
  84.     $("input[class='number']").keyup(function(){
  85.         var tmptxt=$(this).val();
  86.         //得到第一个字符在结尾判断是否为负号
  87.         var t=tmptxt.charAt(0);
  88.         //先把非数字的都替换掉,除了数字和.
  89.         tmptxt=tmptxt.replace(/[^d.]/g,"");
  90.         //必须保证第一个为数字而不是.
  91.         tmptxt=tmptxt.replace(/^./g,"");
  92.         //保证只有出现一个.而没有多个.
  93.         tmptxt=tmptxt.replace(/.{2,}/g,".");
  94.         //保证.只出现一次,而不能出现两次以上
  95.         tmptxt=tmptxt.replace(".","$#$").replace(/./g,"").replace("$#$",".");
  96.         //如果第一位是负号,则允许添加
  97.         if(t == '-'){
  98.             tmptxt='-'+tmptxt;
  99.         }
  100.         $(this).val(tmptxt);
  101.     }).bind("paste",function(){
  102.         var tmptxt=$(this).val();
  103.         //得到第一个字符在结尾判断是否为负号
  104.         var t=tmptxt.charAt(0);
  105.         //先把非数字的都替换掉,除了数字和.
  106.         tmptxt=tmptxt.replace(/[^d.]/g,"");
  107.         //必须保证第一个为数字而不是.
  108.         tmptxt=tmptxt.replace(/^./g,"");
  109.         //保证只有出现一个.而没有多个.
  110.         tmptxt=tmptxt.replace(/.{2,}/g,".");
  111.         //保证.只出现一次,而不能出现两次以上
  112.         tmptxt=tmptxt.replace(".","$#$").replace(/./g,"").replace("$#$",".");
  113.         //如果第一位是负号,则允许添加
  114.         if(t == '-'){
  115.             tmptxt='-'+tmptxt;
  116.         }
  117.         $(this).val(tmptxt);
  118.     }).css("ime-mode", "disabled");
  119.    
  120. });
  121. </script>
  122. <style type="text/css">
  123. table {/*
  124.     border-collapse: 1px;
  125.     border-spacing: 3px;
  126.     border:0px;*/
  127. }
  128. td, th {/*
  129.     border:0px;*/
  130. }
  131. input {
  132.     width:100%;
  133.     height:15px;
  134.     border: none;
  135.     border-bottom:1px solid #000;
  136.     background:transparent; /*输入框景背景透明*/
  137. }
  138. .row_id {
  139.     width:15px;
  140.     border:0px;
  141.     text-align:right;
  142. }
  143. .noborder {
  144.     border:0px;
  145. }
  146. .number {
  147.     text-align:right;
  148. }
  149. </style>
  150. <h2>This is a heading</h2>
  151. <table border="0">
  152.     <thead>
  153.         <tr>
  154.             <th>序</th><th>科目编码</th><th>科目名称</th><th>借方金额</th><th>贷方金额</th><th>操作</th>
  155.         </tr>
  156.     </thead>
  157.     <tbody id="main_table">
  158.         <tr id="model_tr">
  159.             <td><input type="text" id="r_id" class="row_id" readonly></input></td>
  160.             <td><input type="text" id="kmbm"></input></td>
  161.             <td><input type="text" id="kmmc" readonly></input></td>
  162.             <td><input type="text" id="jfje" class="number"></input></td>
  163.             <td><input type="text" id="dfje" class="number"></input></td>
  164.             <td><button type="botton" id="delrow">删除</button></td>
  165.         </tr>
  166.     </tbody>
  167.     <tfoot>
  168.         <tr>
  169.             <td></td>
  170.             <td></td>
  171.             <td class="number noborder">合计</td>
  172.             <td class="number"></td>
  173.             <td class="number"></td>
  174.         </tr>
  175.         <tr>
  176.             <td></td>
  177.             <td></td>
  178.             <td class="number noborder">差额</td>
  179.             <td class="number"></td>
  180.             <td class="number"></td>
  181.             <td><button type="button" id="insert">添加</button></td>
  182.         </tr>
  183.     </tfoot>
  184. </table>
  185. <div>
  186.     <table border="1" id="sr">
  187.       <tbody id="other">
  188.         <tr>
  189.             <th>科目名称</th><td colspan="3"><input type="text" value="" id="sr_kmmc"></input></td>
  190.         </tr>
  191.         <tr>
  192.             <th>摘要</th><td width="30%"><input type="text" value="" id="sr_zy"></input></td>
  193.             <th>数量</th><td width="30%"><input type="text" value="" class="number" id="sr_sl"></input></td>
  194.        </tr>
  195.         <tr>
  196.             <th>子目项</th><td><input type="text" value="" id="sr_zmx"></input></td>
  197.             <th>单价</th><td><input type="text" value="" class="number" id="sr_dj"></input></td>
  198.          </tr>
  199.         <tr>
  200.             <th>细目项</th><td><input type="text" value="" id="sr_xmx"></input></td>
  201.             <th>外币单价</th><td><input type="text" value="" class="number" id="sr_wbdj"></input></td>
  202.         </tr>
  203.         <tr>
  204.             <th>部门项</th><td><input type="text" value="" id="sr_bmx"></input></td>
  205.             <th>外币金额</th><td><input type="text" value="" class="number" id="sr_wbje"></input></td>
  206.         </tr>
  207.         <tr>
  208.             <th>商品项</th><td><input type="text" value="" id="sr_spx"></input></td>
  209.             <th>收付日期</th><td><input type="text" value="" id="sr_sfrq"></input></td>
  210.         </tr>
  211.         <tr>
  212.             <th>客户项</th><td><input type="text" value="" id="sr_khx"></input></td>
  213.             <th>支票号码</th><td><input type="text" value="" id="sr_zphm"></input></td>
  214.         </tr>
  215.         <tr>
  216.             <th>人员项</th><td><input type="text" value="" id="sr_ryx"></input></td>
  217.             <th>发票号码</th><td><input type="text" value="" id="sr_fphm"></input></td>
  218.         </tr>
  219.         <tr>
  220.             <th>外币项</th><td><input type="text" value="" id="sr_wbx"></input></td>
  221.         </tr>   
  222.         <tr>
  223.             <th>备注</th><td><input type="text" value="" id="sr_bz"></input></td>
  224.         </tr>
  225.       </tbody>
  226.     </table>
  227. </div>
  228. </body>
  229. </html>

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文