技术标签: form表单 ajax form提交 前端 onsubmit
form表单提交一般都是同步提交或者ajax提交,今天就讲解一下关于form submit提交遇到的两个小问题
情况1:
<form enctype="multipart/form-data" onSubmit="but_onlick();return false;">
<fieldset>
<label class="block clearfix">
<span class="block input-icon input-icon-right">
<input type="text" id="username" name="username" class="form-control" placeholder="账号" />
<i class="icon-user"></i>
</span>
</label>
<label class="block clearfix">
<span class="block input-icon input-icon-right">
<input type="password" id="pwd" name="pwd" class="form-control" placeholder="密码" />
<i class="icon-lock"></i>
</span>
</label>
<label class="block clearfix">
<span id="span_id"></span>
</label>
<div class="space"></div>
<div class="clearfix">
<button type="submit" class="width-35 pull-right btn btn-sm btn-primary">
<i class="icon-key"></i> 登录</button>
</div>
<div class="space-4"></div>
</fieldset>
</form>
如果form是通过submit提交的话,那么是当前页面form数据都会传递过去,这样在后台判断的话,如果数据校验问题又返回到form表单页面,这样很容易造成数据丢失,要么就是数据跟提交前填写内容不同。可以使用ajax的方法进行校验,保证数据稳定性,提交到后台就可以尽量减少问题。
<script type="text/javascript">
function but_onlick () {
var username = $("#username").val();
var pwd = $("#pwd").val();
var yzm = $("#yzm").val();
if(username == '') {
// alert('用户不能为空');
$("#span_id").html('用户不能为空');
$("#span_id").css("color","red");
var username = document.getElementById("username");
username.focus();//焦点事件
username.select();
return ;
}
var t= {
username: username
};
$.ajax({
type: "post",
url: "/Admin/login/ajaxlogin",
//data:JSON.stringify(t), //将对象转为为json字符串
data : t ,
//dataType:"json",
//contentType:"application/text", //这个必须,不然后台接受时会出现乱码现象
success: function(result) { //r为返回值
//alert(result.code);
console.log(result.code);
if (result.code == '10000') {
$("#span_id").html('登录成功');
$("#span_id").css("color","blue");
window.location.href = "/wfpcAdmin/home";
} else {
$("#span_id").html(result.msg);
$("#span_id").css("color","red");
$('#captcha_img').click();
}
}
});
}
</script>
在form表单那里,<form enctype="multipart/form-data" onSubmit="but_onlick();return false;"> 使用这个
情况2:
<form action="add" method="post" onsubmit="return goodsaddsave();">
<button class="btn btn-success" type="submit"><i class="fa fa-check"></i> 确定添加</button>
如果一定使用form表单同步,按回车键提交,在做form里面数据又想着去校验,又怎么办呢???
可以尝试一下办法
function goodsaddsave(){
///
/ 多图上传不能为空
///
var goods_arr = $("input[name='goods_img_array[]']").val();
if (goods_arr == undefined || goods_arr == null){
$("#spanid").show();
$("#span_id").show();
$("#spanid").focus();//焦点事件
$("#spanid").select();
return false;
} else {
$("#span_id").hide();
$("#spanid").hide();
}
}
因为你在form表单 οnsubmit="return goodsaddsave(); 在方法里面 return false 就可以在前端校验了
这是遇到一些同学使用form表单提交,两种情况:同步和异步。不过现在大部分都是异步校验,谁还会用最原始的方法去后台校验,前端都会校验好form表单的数据问题。谢谢大家来指导!
文章浏览阅读1.2k次。B. Borzetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputTernary numeric notation is quite popular in Berland. To tel_csdn codeforces borze
文章浏览阅读612次,点赞17次,收藏8次。你知道在Selenium中如何模拟用户行为来规避网站检测吗?本文将揭示一些不为人知的技巧和策略,帮助新手使用Selenium自动化工具时避免被网站检测到,提高自动化测试的稳定性和可靠性。
文章浏览阅读39次。功能最强在的编辑器——vi vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人, 或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻、 游刃有余,因为其他几种文本处理器并非UNIX标准配备。说不定别人的Linux机器没安装joe或pico,..._linux vi时候 written
文章浏览阅读2.3k次。火山图是散点图的一种,它将统计测试中的统计显著性量度(如p value)和变化幅度相结合,从而能够帮助快速直观地识别那些变化幅度较大且具有统计学意义的数据点(基因等)。常应用于转录组研究,也能应用于基因组,蛋白质组,代谢组等统计数据。所以关注火山图(其它类型图也是),先理解每个点是什么(点代表基因、样品、通路或其它的,这个认识可以来自于常识,更准确的是看作者的描述),然后看横轴代表什么、纵轴代表..._volcano plot
文章浏览阅读615次。区块链作为一种崭新的、颠覆性的技术,是国内外活跃的研究领域和毕业设计选题方向。 本文列出最新的一组区块链方面的论文,希望可以对选择区块链毕业设计的同学们有所帮助, 这是汇智网编辑整理的区块链毕业设计论文系列中的第11篇。区块链相关链接: - 以太坊智能合约与Dapp入门教程 - 以太坊去中心化电商Dapp实战教程 - 以太坊ERC721数字资产实战教程 - 比特币数据分析ETL工具 - Fabri..._区块链大作业及源代码
文章浏览阅读3.4k次,点赞3次,收藏27次。HTML、CSS精美按钮输入框图形样式_好看的输入框样式
文章浏览阅读713次,点赞17次,收藏18次。这篇文章的目的是了解嵌入式Linux的四个组成部分 —— 工具链、引导加载程序、内核、根文件系统 —— 通过使用最少的代码从头开始启动 Raspberry Pi 4 的命令。
文章浏览阅读1k次。一.测试自动化的内涵(1)手工测试的局限性通过手工测试无法做到覆盖所有代码路径; 许多与时序、死锁、资源冲突、多线程等有关的错误通过手工测试很难捕捉到 在系统负载、性能测试时,需要模拟大量数据、或大量并发用户等各种应用场合时,也很难通过手工测试来进行 在进行系统可靠性时,需要模拟系统运行十年、几十年,以验证系统能否稳定运行,也是手工测试无法模拟的。 如果有大量(几千)的测试用例,需要在短时间内完成,手工测试无法做到 测试可以发现错误,并不能表明程序的正确性。 代码全部Code Path测_什么是使用自动化测试的主要特征
文章浏览阅读1.8k次,点赞53次,收藏41次。总之,智慧灯杆通过传感器感知环境信息,采集和处理数据,并根据结果控制灯杆的开关、亮度调节等操作,同时能够与其他设备或网络进行通信和数据交互,实现远程管理和监控。它能够通过传感器感知城市的环境数据,如空气质量、温度、湿度、噪音等,实时获取和监测城市的状态,并传输给城市管理者进行分析和决策。智慧灯杆是一种集成了多种智能功能的新型灯杆,它通过将传感器、通信设备、LED灯源、信息显示屏等技术融入到灯杆中,实现了智能化的城市管理和服务。充电功能:智慧灯杆可以配备充电插座,供人们充电使用,如手机充电、电动车充电等。_智慧灯杆
文章浏览阅读1.5k次。Start Emacs是一个功能相对较多而且很复杂的texteditor,所以想要熟练使用必须要对emacs的一些基本概念进行了解,了解这些概念最好的教程就是emacs自带的 “Emacs _emacs c++代码浏览插件
文章浏览阅读845次,点赞16次,收藏18次。登录注册功能基于Shiro实现RBAC模型的权限控制系统, 分为普通用户, 社团管理员, 系统管理员三个角色实现会员的增加, 删除, 修改, 搜索查询功能实现物品的信息管理功能支持对活动信息进行维护, 实现增删改查的功能能够对社团信息进行维护管理。
文章浏览阅读55次。在主循环中,通过调用 sm.tx_fifo(data) 方法将单个字节的数据写入状态机的发送 FIFO 中。这是一个利用状态机的 rp2.StateMachine.put() 方法来向 TX FIFO 中写入数据,以及 rp2.StateMachine.get() 方法来从 RX FIFO 中读取数据的例子。当需要在程序中控制状态机的数据写入速度或频率时,例如在使用状态机模拟高速或高频的 I/O 行为时,根据 TX FIFO 中的字数来决定何时调用 StateMachine.put() 方法。