admin 管理员组文章数量: 1184232
不用action提交表单——JS实现
通常表单的提交有两种方式,一是直接通过html的form提交,代码如下:
<form action="" method="" id="forms"><input type="text" name="username" value="" /><input type="password" name="pwd" value="" /><input type="submit" value="提交"/> </form>
但有时候我们会出于安全角度考虑,给用户输入的密码进行加密,方法一就没办法解决这个问题,这时候我们同常会选择另一种方法,使用javaScript来进行表单提交,代码入下:
<!--HTML-->
<form action="" method="" id="test_form"><input type="text" name="username" value="" /><input type="password" name="pwd" value="" /><button type="button" onclick='doSubmitForm()'>提交<button/>
</form><script>
var form = document.getElementById('test_form');
//再次修改input内容
form.submit();
</script> 这种方法有个缺点就是,打乱正常的表单提交程序,通常用户输入完成后点击回车键就可以提交,但是这个方法实现不了,所以,使用下面的方法便可以解决这个问题,,通过form自身的onsubmit方法,来触发提交,然后进行input的修改:
<!--HTML-->
<form id='test_form' action='' method='' omsubmit='return checkForm()'><input type='text' name='username' value=''/><input type='password' name='pwd' value =''/><button type='submit'>提交<button/>
<form/><script>
function checkForm(){var form = document.getElementById('test_form');//可在此修改input //进行下一步return ture;
}
<script/> 注意,checkForm()方法中,return true时,表单才会正常提交,为false时,浏览器将不会提交,通常是用户的密码输入错误时,终止提交。
之前说过,为安全考虑用户提交时,一般对密码进行加密处理,代码如下:
<!--HTML-->
<form id='test_form' action='' method='' omsubmit='return checkForm()'><input type='text' name='username' value=''/><input type='password' name='pwd' id='pwd' value =''/><button type='submit'>提交<button/>
<form/><script>
function checkForm(){var pwd= document.getElementById('pwd');pwd.value= toMD5(pwd.value); //进行下一步return ture;
}
<script/> 这种做法看上去没问题,但是当用户输入完成后,提交会发现密码框的 * 会由几个瞬间变成 32个,这是由于MD5加密造成的(MD5有32个字符);如果想避免出现这种情况,需要充分利用到<input type='hidden'>,代码如下:
<!--HTML-->
<form id='test_form' action='' method='' omsubmit='return checkForm()'><input type='text' name='username' value=''/><input type='password' id='input_pwd' value =''/><input type='hidden' name='pwd' id='md5_pwd' value=''/><button type='submit'>提交<button/>
<form/><script>
function checkForm(){var input_pwd= document.getElementById('input_pwd');var md5_pwd= document.getElementById('md5_pwd');md5_pwd.value= toMD5(input_pwd.value); //进行下一步return ture;
}
<script/>
注意,<input type='password'/>是用户输入密码的input框并没有设置 name 属性,而是给 <input type='hidden' /> 设置了 name='pwd',这样表单提交只会提交带有name属性的输入框,从而解决了上面的那个问题。
转自:.html
本文标签: 不用action提交表单JS实现
版权声明:本文标题:不用action提交表单——JS实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.roclinux.cn/b/1686652547a20649.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论