美文网首页
js实现表单提交submit(),onsubmit

js实现表单提交submit(),onsubmit

作者: 垃圾桶边的狗 | 来源:发表于2018-12-20 23:38 被阅读0次
通常表单的提交有两种方式,一是直接通过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属性的输入框,从而解决了上面的那个问题。

a标签超链接提交form表单

<form action="{% url 'App:doOrder' %}" method="post" id="myForm">
    <input type="hidden" name="money" value="{{ money }}">
    {% csrf_token %}
    <section class="full">
        <section>
            <ul>
                <li>
                    <div class="clear">
                        <p class="infoJustify">收货人<b></b></p><p>:<span>{{ address.name }}</span></p>
                    </div>
                </li>
                <li>
                    <div class="clear">
                        <p class="infoJustify">电话<b></b></p><p>:<span>{{ address.phone }}</span><a class="change">修改></a></p>
                    </div>
                </li>
                <li>
                    <div class="clear"><p class="infoJustify">收货地址<b></b></p><p>:<span>{{ address.address }}</span></p>
                    </div>
                </li>
            </ul>

            <section class="delivery">
            </section>
            <section class="delivery">
                <span>收货备注</span> <input type="text" name="message" placeholder="可输入100字以内特殊要求内容"/>
            </section>


            <menu>
                <ul>
                    {% for item in carData%}
                    <li id="{{item.productid}}li" class="menuList">
                        <div class="confirm">
                        </div>
                        <a href="#">
                            <img src="{{item.goods.productimg}}"/>
                            <p>{{item.goods.productname}}</p>
                            <span class="{{productprice}}">{{item.goods.price}}</span>
                        </a>
                        <section>
                            <span>{{item.num}}</span>
                        </section>
                    </li>
                    {% endfor %}

                    <li class="payTheBill">
                        <div class="confirm"></div>
                        <p><span>总价:{{ money }}</span></p>
                        <a id="ok" onclick="document.getElementById('myForm').submit();">下订单</a>
                    </li>
                </ul>
            </menu>
        </section>
    </section>
</div>
</form>

引自

相关文章

  • js实现表单提交submit(),onsubmit

    通常表单的提交有两种方式,一是直接通过html的form提交,代码如下: 但有时候我们会出于安全角度考虑,给用户输...

  • form表单只提交数据不跳转

    1.onsubmit方法 form表单的onsubmit方法在submit执行之前提交表单 2.ajax提交

  • JAVAWeb(第三周)

    表单提交方式 *使用submit提交 .... *使用button提交表单 -代码 //实现提交方法 functi...

  • Dom4j

    * 通过js提交表单 * 获取form对象,提交的submit();.action="".method="" * ...

  • 表单form方式

    一、submit提交 一般表单提交通过type=submit实现,input type="submit",浏览器显...

  • form表单提交数据的几种方式

    一、submit提交 一般表单提交通过type=submit实现,input type="submit",浏览器显...

  • 2019-03-04 表单,标签笔记

    1.如果form表单里没有提交按钮则无法提交这个form(除非用js 2.form表单里若没有提交submit按钮...

  • html form 表单提交前验证

    可以使用form表单的onsubmit方法,在提交表单之前,对表单或者网页中的数据进行检验。onsubmit指定的...

  • js&JQuery

    内容回顾 JS开发步骤确定事件(onclick鼠标点击事件,onsubmit表单的提交事件,onload页面加载完...

  • JavaWeb day5

    表单提交方式 使用 submit 提交 ...... ...

网友评论

      本文标题:js实现表单提交submit(),onsubmit

      本文链接:https://www.haomeiwen.com/subject/jglpkqtx.html