不管你的技术水平如何,错误或异常是应用程序开发者生活的一部分。Web开发的不连贯性留下了许多错误能够发生并确实已经发生的地方。解决的关键在于处理任何不可预见的(或可预见的错误),来控制用户的体验。利用JavaScript,就有多种技术和语言特色可以用来正确地解决任何问题。 事事检查 在开始之前检查一切是一个好的编程习惯,也就是说,你应该在利用它们之前,检查对象、方法调用等的有效性。这样就避免了与未实例化对象或对不存在的方法调用有关的错误。列表A在使用对象(变量和字段)之前会对它们进行检查。在使用字段对象之前,该脚本保证它们为有效或非空字段。 列表A 以下为引用的内容: <html> <head> <title>JS Test</title> <script type="text/javascript"> function validate() { var doc = document.forms[0]; var flag = true; if (doc != null) { if (doc.fullName != null) { if (doc.fullName.value == '') { flag = false; } } else { flag = false; } if (doc.contactNumber != null) { if (doc.contactNumber.value == '') { flag = false; } } else { flag = false; } if (flag) { alert('Validation successful, document will be submitted.'); doc.submit(); } else { alert('Enter values before submitting.'); } } return 0; } </script> </head> <body> <form id="frmTest"> Name: <input id="fullName" name="fullName" type="text"><br> Address: <input id="contactNumber" name="contactNumber" type="text"><br> <input type="button" value="Submit" onclick="validate();"> </form> </body> </html> | 你并不需要实际地检查有效性——你可以简单地在if 语句中使用一个对象,如果它不是一个无效对象的话,所求得的值就为真。列表B就用了这种句法,同时也用到了getElementByID方法。它用了一个if语句来保证在继续之前getElementByID方法是被支持的(存在)。 列表B 以下为引用的内容: <html><head> <title>JS Test</title> <script type="text/javascript"> function validate() { var doc = document.forms[0]; var flag = true; if (doc != null) { if (doc.getElementById) { if (doc.getElementById("fullName")) { if (doc.fullName.value == '') { flag = false; } } else { flag = false; } if (doc.getElementById("contactNumber")) { if (doc.contactNumber.value == '') { flag = false; } } else { flag = false; } if (flag) { alert('Validation successful, document will be submitted.'); doc.submit() } else { alert('Enter values before submitting.'); } } return 0; } </script> </head> <body> <form id="frmTest"> Name: <input id="fullName" name="fullName" type="text"><br> Address: <input id="contactNumber" name="contactNumber" type="text"><br> <input type="button" value="Submit" onclick="validate();"> </form> </body> </html> | |