分析bug來源:
1、表單設置最大值,防止溢出出錯textarea限制最大長度:
<textarea cols="90" rows="6" name="comments" id="flowComments" maxlength="1000" οnkeydοwn="if (this.value.length>1000){event.returnValue=false}" >comments</textarea>
$("#flowComments").keyup(function(event){
//判斷文本域輸入剩餘字數
var curLength = $("#flowComments").val().length;
$("#commentsTip").text(PlanCommon.v.COMMENTS_LENGTH - curLength);
});
2、表單的重複提交,例如保存,要做限制防止多次提交,帶來垃圾數據
3、form表單中只有一個input框時enter事件會觸發提交事件
(1)如果表單裏有一個type=”submit”的按鈕,回車鍵生效。
(2)如果表單裏只有一個type=”text”的input,回車鍵生效。
(3)如果按鈕不是用input,而是用button,並且沒有加type,IE下默認爲type=button,FX默認爲type=submit。
(4)其他表單元素如textarea、select不影響。
解決方法:
阻止表單提交<input type="text" name="name" οnkeydοwn="if(event.keyCode==13) return false;"/>
加一個隱藏的input框 <input style="display:none" />
4、封裝ajax函數一定要使用對象參數,便於擴展,load函數一定要封裝函數,便於加時間戳和回調事件等,顯示對話框應在加載頁面完成顯示。
5、插件封裝,與插件無關的邏輯不應再插件中,需暴露對應的函數。