Page 54 - JavaScript修炼之道
P. 54

任务18  暂时禁用提交按钮             43


                   发生submit事件时禁用控件


                    form/submit/submit.js

                   function preventMultipleSubmits() {
                     this.select('.submit').invoke('disable');
                   }

                   document.observe('dom:loaded', function() {
                     $('commentForm').observe('submit', preventMultipleSubmits);
                   });

                    form/submit/index.html

                   <form id="commentForm" action="post_comment.php">
                     <p>
                       <label for="edtText">Your text</label>
                       <textarea id="edtText" name="text" cols="40" rows="5"></textarea>
                     </p>
                     <p><input type="submit" class="submit" value="Send" /></p>
                   </form>

                   用class属性进一步装饰(稍显花哨)

                    form/submit/submit.js

                   function preventMultipleSubmits(e) {
                     if (!this.hasClassName('submitting')) {
                       e.stop();
                     }
                     this.addClassName('submitting').select('.submit').invoke('disable');
                     var that = this;
                     (function() { that.submit(); }).delay(0.1);
                   }
   49   50   51   52   53   54   55   56   57   58   59