JQM:在文本框中输入时禁用表单提交

时间:2012-07-12 11:43:31

标签: jquery jquery-mobile webforms

我在表单中有一个文本框,然后此复选框被聚焦,我按下输入表单已提交。但这不是我想要的行为。我想验证表单并仅在单击某个链接或在文本字段外按Enter键时手动发送。这是我的表格代码

<form action ="<?php echo $this->url(array('controller' => 'Queue','action' => 'checkinupcoming'))."/?confirmnumber=$this->confNumber&clientid=$this->clientId";?> " data-ajax="false" method= "post" class="checkin-form">     
                <h3>Customer Details</h3>

                <ul class="form" style="margin:  10px 0 15px 27px">
                        <li id="descriptionLiId" class="first last descriptionLi">
                                <label id="lbldescriptionId" class="lbldescription">Description</label>
                                <input id="descTextId" class="descriptionText" tabindex="1" type="text" name="description" title="Enter visually identifying description" value="Enter visually identifying description" onfocus="onFocusBehavior(this);" onblur="onBlurBehavior(this);" />
                        </li>
                </ul>

                <h3 id="hdrnotesId" class="hdrnotes">Notes</h3>

                <ul class="form">
                        <li id="notesListId" class="first last notesList">
                                <textarea id="notesId" class="text-area notes" tabindex="1" name="notes"></textarea>
                        </li>
                </ul>
</form> 

我通过序列化输入并发送jquery ajax请求来提交表单。我想在文本字段聚焦时禁用输入按钮上的表单提交

2 个答案:

答案 0 :(得分:0)

通过禁用输入按

解决了这个问题
$('.descriptionText').bind('keypress', function (e){
        if(e.keyCode == 13){
            return false;
        }
        return true;
    });

答案 1 :(得分:0)

一个简单的解决方案是在表单标记处使用onsubmit="return false",因此不需要额外的jQuery。

<form action="" data-ajax="false" method= "post" class="checkin-form" id="form1" onsubmit="return false">

但使用此方法时要小心,您应该手动提交表单,如下所示:

<input type="button" value="manual submit" onclick="document.getElementById('form1').submit()" />

关于您的代码请注意,建议使用e.which而不是e.keycode

  

It is recommended to watch event.which for keyboard key input.

相关问题