深入理解jQuery Validate验证框架

需积分: 0 0 下载量 129 浏览量 更新于2024-07-27 收藏 330KB DOC 举报
"jQuery.validate是一个强大的验证框架,用于在客户端进行表单验证,极大地提高了用户体验。它基于jQuery库,能够方便地添加各种验证规则和错误提示,确保用户输入的数据符合预设条件。" jQuery.validate框架详解 jQuery.validate是前端开发中广泛使用的验证插件,它简化了对HTML表单数据的验证过程,无需编写大量的JavaScript代码即可实现复杂的验证逻辑。通过与jQuery库的集成,该框架提供了一种简洁、高效的方式来确保用户输入的有效性。 ### 基本使用 要使用jQuery.validate,首先需要引入jQuery核心库和jQuery.validate插件的JavaScript文件。例如: ```html <script type="text/javascript" src="js/jquery-min.js"></script> <script type="text/javascript" src="js/jquery.validate.pack.js"></script> ``` 然后,在文档加载完成后,使用`$(document).ready()`函数初始化验证: ```javascript $(document).ready(function() { $("#textForm").validate(); }); ``` ### 验证方法 验证的起点是`validate()`方法,它可以接受一个可选的`options`对象,用于自定义验证行为: ```javascript $("#textForm").validate({ // 配置项 }); ``` #### 可选项(options) 1. rules:定义每个表单字段的验证规则,如`required`、`email`、`minlength`等: ```javascript rules: { name: { required: true, minlength: 2 } } ``` 2. messages:自定义错误消息,对应于`rules`中的每个验证规则: ```javascript messages: { name: { required: "请输入姓名", minlength: "姓名至少为2个字符" } } ``` 3. errorElement:设置错误消息显示的元素类型,默认是`span`。 4. errorClass:设置错误元素的CSS类名,用于美化错误提示。 5. errorPlacement:自定义错误消息的位置。 6. highlight 和 unhighlight:高亮和取消高亮错误字段。 7. submitHandler:当表单验证通过后调用的回调函数,通常用于提交表单。 ### 验证规则 jQuery.validate提供了多种内置验证规则,包括但不限于: - `required`:字段必须填写。 - `email`:字段必须是有效的电子邮件地址。 - `url`:字段必须是有效的URL。 - `date`:字段必须是有效的日期。 - `number`:字段必须是数字。 - `digits`:字段只能包含数字。 - `equalTo`:字段的值必须与另一个字段的值相同。 ### 自定义规则 除了内置规则,还可以通过`addMethod`创建自定义验证规则: ```javascript $.validator.addMethod("customRule", function(value, element) { // 验证逻辑 }, "自定义规则的错误消息"); ``` ### 表单元素的标记 在HTML中,可以使用`class`属性指定验证规则,如`class="required email"`,这样可以减少JavaScript代码量。 ### 总结 jQuery.validate框架为开发者提供了强大的表单验证功能,其丰富的验证规则和高度可定制性使得表单验证变得简单易行。结合jQuery的事件处理和DOM操作,可以构建出高效、友好的用户界面,提升网站的质量和用户体验。通过理解和熟练使用这个框架,开发者能更好地掌控前端数据的验证,确保数据的准确性和一致性。

import time import tensorflow.compat.v1 as tf tf.disable_v2_behavior() from tensorflow.examples.tutorials.mnist import input_data import mnist_inference import mnist_train tf.compat.v1.reset_default_graph() EVAL_INTERVAL_SECS = 10 def evaluate(mnist): with tf.Graph().as_default() as g: #定义输入与输出的格式 x = tf.compat.v1.placeholder(tf.float32, [None, mnist_inference.INPUT_NODE], name='x-input') y_ = tf.compat.v1.placeholder(tf.float32, [None, mnist_inference.OUTPUT_NODE], name='y-input') validate_feed = {x: mnist.validation.images, y_: mnist.validation.labels} #直接调用封装好的函数来计算前向传播的结果 y = mnist_inference.inference(x, None) #计算正确率 correcgt_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1)) accuracy = tf.reduce_mean(tf.cast(correcgt_prediction, tf.float32)) #通过变量重命名的方式加载模型 variable_averages = tf.train.ExponentialMovingAverage(0.99) variable_to_restore = variable_averages.variables_to_restore() saver = tf.train.Saver(variable_to_restore) #每隔10秒调用一次计算正确率的过程以检测训练过程中正确率的变化 while True: with tf.compat.v1.Session() as sess: ckpt = tf.train.get_checkpoint_state(minist_train.MODEL_SAVE_PATH) if ckpt and ckpt.model_checkpoint_path: #load the model saver.restore(sess, ckpt.model_checkpoint_path) global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1] accuracy_score = sess.run(accuracy, feed_dict=validate_feed) print("After %s training steps, validation accuracy = %g" % (global_step, accuracy_score)) else: print('No checkpoint file found') return time.sleep(EVAL_INTERVAL_SECS) def main(argv=None): mnist = input_data.read_data_sets(r"D:\Anaconda123\Lib\site-packages\tensorboard\mnist", one_hot=True) evaluate(mnist) if __name__ == '__main__': tf.compat.v1.app.run()对代码进行改进

2023-05-26 上传