分析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、插件封装,与插件无关的逻辑不应再插件中,需暴露对应的函数。