form表单相关知识
-
form 表单序列化参数,ajax提交①form表单的参数序列化后,然后提交。$.ajax({ type: 'post', url:$form1.attr("action"), data:$form1.serializeArray(),//序列化参数 dataType:"json", success: function(json){ if("200" == json.statusCode){ }else{ alertMsg.warn(json.message); } }});②form表单的onsubmit( ) 就是在提交按钮的同时进行的操作。通过我们有回调验证等。onsubmit="return validateCallback(this, dialogAjaxDone)"
-
使用ajax方法实现form表单的提交(附源码)写在前面的话 在使用form表单的时候,一旦点击提交触发submit事件,一般会使得页面跳转,页面间的跳转等行为的控制权往往在后端,后端会控制页面的跳转及数据传递,但是在某些时候不希望页面跳转,或者说想要将控制权放在前端,通过js来操作页面的跳转或者数据变化。 一般这种异步的操作,我们都会想到ajax方式,因此在实现了功能后就整理了这篇文章,通过ajax方法实现form表单的提交并进行后续的异步操作。 常见的form表单提交方式 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tran
-
细说 Form (表单)阅读目录开始简单的表单,简单的处理方式表单提交,成功控件多提交按钮的表单上传文件的表单MVC Controller中多个自定义类型的传入参数F5刷新问题并不是WebForms的错以Ajax方式提交整个表单以Ajax方式提交部分表单使用JQuery,就不要再拼URL了!id, name 有什么关系使用C#模拟浏览器提交表单资源链接Form(表单)对于每个WEB开发人员来说,应该是再熟悉不过的东西了,可它却是页面与WEB服务器交互过程中最重要的信息来源。虽然Asp.net WebForms框架为了帮助我们简化开发工作,做了很完美的封装,让我们只需要简单地使用服务端控件就可以直接操作那些HTML表单元素了。但我认为了解一些基础的东西,可以使我们不必束缚在WebForms框架上,以及遇到一些奇怪问题时,可以更从容地解决它们。今天,我将和大家来聊聊表单,这个简单又基础的东西。我将站在HTML和单纯的Asp.net框架的角度来解释它们的工作方式,因此,本文不演示WebForms服务器控件的相关内容。回到顶部简单的表单,
-
Jquery通过Ajax方式来提交Form表单的具体实现提交Form表单的方法有很多,在本文为大家介绍下Jquery通过Ajax方式是如何提交Form表单的今天刚好看到Jquery的ajax提交数据到服务器的方法,原文是:保存数据到服务器,成功时显示信息。jQuery 代码: 代码如下:$.ajax({type: "POST",url: "some.php",data: "name=John&location=Boston",success: function(msg){alert( "Data Saved: " + msg );}});后来我就想了一下,我要提交form表单有没有办法呢?但是我不可能每个fom的input都写一次var demo=$("#divname").val();的.后来,今天我看到一个方法,就是.map,就做出一下想法了,可以借鉴哟;html代码如下,下面我要提交Form 的id为dlg_form的所有input数据, 代码如下:
form表单相关课程
form表单相关教程
- 1. form 表单的使用 form 标签和 ul select 标签类似,代表表单整体,而里面嵌套的元素则是表单具体的内容。我们来做一个用户名和密码的表单,这需要用到之前我们讲的 label 标签和 input 标签的知识,代码如下:<form> <label for="username">用户名</label> <input type="text" id='username'> <br> <label for="password">密码</label> <input type="password" id="password"></form>效果如下:表单呈现的形式和普通输入框无异,但它的作用就是我们要做提交表单的操作(既我们需要把用户输入的信息传给后台),那么普通的输入框就做不到这个功能了。那么提交表单的时候,我们可以给 form 标签加上一个 method 属性,这个属性表示当前提交表单的方式,一般为 get 或者 post,这个需要后台先行告知。form 标签还有一个 action 属性,表示表单提交的地址,这个也需要后台先行告知。
- 4. 不使用 form 提交表单 不使用 form 标签来提交表单,通常都是使用 AJAX 进行数据交互的情况。这个时候就不需要拦截 form 的提交行为了。<style> h3 {margin-top: 0;color: #4caf50;} .login {width: 300px;padding: 32px;box-shadow: 2px 2px 10px rgba(0, 0, 0, .1);position: fixed;top: 40%;left: 50%;transform: translate(-50%, -50%);} .form-item {display: flex;margin-bottom: 16px;border-bottom: 1px solid #ccc;} .form-item .title {width: 70px;color: #666;font-size: 14px;} .form-item .content {flex: 1;} .form-item .content input {width: 100%;border: 0 none;padding: 2px 8px;outline: none;font-size: 16px;} .login-btn {width: 100%;border: 0 none;background-color: #4caf50;color: white;margin-top: 16px;outline: none;height: 32px;} .login-btn:active {background-color: #2da050;}</style><div class="login"> <h3>登入</h3> <label class="form-item"> <div class="title">用户名</div> <div class="content"> <input autocomplete="off" id="account" class="account" name="account" type="text"> </div> </label> <label class="form-item"> <div class="title">密码</div> <div class="content"> <input autocomplete="off" name="pwd" type="password"> </div> </label> <div> <button class="login-btn" type="button">登入</button> </div></div><script>var loginBtn = document.querySelector('.login-btn');var pwdEle = document.querySelector('[name="pwd"]');function login(cb) { // 假装登入花了 1 秒 setTimeout(function() { alert('登入成功'); cb && cb(); }, 1000);}loginBtn.addEventListener('click', function() { var pwd = pwdEle.value; if (pwd.length < 6 || pwd.length > 16) { alert('密码长度 6-16'); return; } login(function() { window.location.href = 'https://imooc.com'; });});</script>使用这种方式,就可以自主控制流程,不需要再考虑 form 标签的行为。
- 2. 获取表单内容 获取表单内容,实际上就是取到表单项对应的 DOM 节点的值。获取 DOM 节点的方式非常多,前面的章节也有介绍。<style> h3 {margin-top: 0;color: #4caf50;} .login {width: 300px;padding: 32px;box-shadow: 2px 2px 10px rgba(0, 0, 0, .1);position: fixed;top: 40%;left: 50%;transform: translate(-50%, -50%);} .form-item {display: flex;margin-bottom: 16px;border-bottom: 1px solid #ccc;} .form-item .title {width: 70px;color: #666;font-size: 14px;} .form-item .content {flex: 1;} .form-item .content input {width: 100%;border: 0 none;padding: 2px 8px;outline: none;font-size: 16px;} .login-btn {width: 100%;border: 0 none;background-color: #4caf50;color: white;margin-top: 16px;outline: none;height: 32px;} .login-btn:active {background-color: #2da050;}</style><form name="login-form" class="login"> <h3>登入</h3> <label class="form-item"> <div class="title">用户名</div> <div class="content"> <input id="account" class="account" name="account" type="text"> </div> </label> <label class="form-item"> <div class="title">密码</div> <div class="content"> <input name="pwd" type="password"> </div> </label> <div> <button class="login-btn" type="submit">登入</button> </div></form><script> var account1 = document.getElementById('account'); var account2 = document.getElementsByName('account'); var account3 = document.getElementsByClassName('account'); alert(account1 === account2[0]); alert(account1 === account3[0]); var account4 = document.forms['login-form']['account']; alert(account1 === account4); console.log(document.forms['login-form'].elements);</script>前三种获取节点的方式读者都已经熟悉了。account4 的获取方式稍微有点不一样,document.forms 是文档内的表单集合,其可以通过表单的 id 和 form 的属性,取到具体的某个表单。取到表单后,还可以直接使用表单项的 name 属性取到对应的表单项,使用 elements 可以取到这个表单下的所有表单项。
- 3.4 进行表单验证 @app.route('/', methods=['GET', 'POST'])def login(): form = LoginForm() print('form.validate_on_submit() =', form.validate_on_submit()) print('form.email.label =', form.email.label) print('form.email() = ', form.email) print('form.email.errors =', form.email.errors) return render_template('login.html', form=form)app.run(debug=True)在第 1 行,设置以 GET 方法或者 POST 方法访问路径 / 时,使用函数 login() 进行处理;在第 3 行,创建一个实例 form,表示用户登录的表单;在第 8 行,调用 render_template 渲染 login.html。form 对象提供了如下方法和属性:属性说明form.validate_on_submit()表单验证函数,返回值表示验证是否正确form.email()显示 email 字段对应的 HTML 代码form.email.labelemail 字段的 labelform.email.errors验证 email 字段的失败提示信息在程序中打印 form 的属性,当用户提交表单时,在控制台中显示如下信息:form.validate_on_submit() = Falseform.email.label = <label for="email">邮箱</label>form.email() = <input id="email" name="email" required type="text" value="tom">form.email.errors = ['请输入正确的邮箱']当表单验证失败时,form.validate_on_submit() 返回为 False。form.email.errors 是一个列表,记录了所有可能的错误信息。
- 3. 校验表单项 获取到表单项后,就可以对表单项的值做判断了,如密码必须是 6-16 位:<style> h3 {margin-top: 0;color: #4caf50;} .login {width: 300px;padding: 32px;box-shadow: 2px 2px 10px rgba(0, 0, 0, .1);position: fixed;top: 40%;left: 50%;transform: translate(-50%, -50%);} .form-item {display: flex;margin-bottom: 16px;border-bottom: 1px solid #ccc;} .form-item .title {width: 70px;color: #666;font-size: 14px;} .form-item .content {flex: 1;} .form-item .content input {width: 100%;border: 0 none;padding: 2px 8px;outline: none;font-size: 16px;} .login-btn {width: 100%;border: 0 none;background-color: #4caf50;color: white;margin-top: 16px;outline: none;height: 32px;} .login-btn:active {background-color: #2da050;}</style><form name="login-form" class="login" action="https://imooc.com"> <h3>登入</h3> <label class="form-item"> <div class="title">用户名</div> <div class="content"> <input autocomplete="off" id="account" class="account" name="account" type="text"> </div> </label> <label class="form-item"> <div class="title">密码</div> <div class="content"> <input autocomplete="off" name="pwd" type="password"> </div> </label> <div> <button class="login-btn" type="submit">登入</button> </div></form><script> var loginForm = document.forms['login-form']; var pwdEle = loginForm.pwd; loginForm.onsubmit = function(e) { var pwd = pwdEle.value; if (pwd.length < 6 || pwd.length > 16) { alert('密码长度 6-16'); return false; // 可以使用 return e.preventDefault() 代替 } setTimeout(function() { alert('登入成功,马上跳转!'); }, 1000); };</script>这里获取到了表单元素,同时给表单的事件处理器属性 onsubmit 赋值,表示在表单被提交的时候做的事情。在事件处理器中,通过输入框的 value 属性获取到了输入的值,对值进行了长度判断,如果长度不正确则返回 false,表单则会终止提交。如果正确,则会根据 form 标签的 target 属性进行提交。需要注意的是,这里如果使用 addEventListener 来监听 submit 事件,必须使用 preventDefault 来阻止默认事件,即阻止表单提交,不能使用 return false;。var loginForm = document.forms['login-form'];var pwdEle = loginForm.pwd;loginForm.addEventListener('submit', function(e) { var pwd = pwdEle.value; if (pwd.length < 6 || pwd.length > 16) { alert('密码长度 6-16'); e.preventDefault(); // 代替return false return; } setTimeout(function() { alert('登入成功,马上跳转!'); }, 1000);});
- 2.2 输出表单 HTML 每一个标签在 CGI 中都有一个方法。实例:#!/usr/bin/rubyrequire "cgi"cgi = CGI.new("html5")cgi.out { cgi.html { cgi.head { "\n"+cgi.title{"It is an Example of form"} } + cgi.body { "\n"+ cgi.form {"\n"+ cgi.hr + cgi.h1 { "A Form: " } + "\n"+ cgi.h2 { "A Basic Form:"} + "\n" + cgi.textarea("get_text") +"\n"+ cgi.button("click_here") +"\n"+ cgi.hr + cgi.br + cgi.submit } } }}# ---- 输出结果 ----Content-Type: text/htmlContent-Length: 317<!DOCTYPE HTML><HTML><HEAD><TITLE>It is an Example of form</TITLE></HEAD><BODY><FORM METHOD="post" ENCTYPE="application/x-www-form-urlencoded"><HR><H1>A Form: </H1><H2>A Basic Form:</H2><TEXTAREA NAME="get_text" COLS="70" ROWS="10"></TEXTAREA><BUTTON></BUTTON><HR><BR><INPUT TYPE="submit"></FORM></BODY></HTML>解释:上面的代码生成了一个HTMl表单,首页我们为了使用方法,先实例化了CGI,所有的方法都返回一个字符串,该字符串是标签的内容。
form表单相关搜索
-
face
fade
fadein
fadeout
fadeto
fail
family
fastcgi
fastjson
fault
fclose
fdisk
feed
fetch
ff浏览器
fgets
fields
fieldset
fighting
figure