首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么IE9在enter中调用get方法而不是post被按下,如何修复?

为什么IE9在enter中调用get方法而不是post被按下,如何修复?
EN

Stack Overflow用户
提问于 2011-09-20 18:32:13
回答 1查看 592关注 0票数 0

Enter键用于发布下面的表单。按enter键在IE9中发送get请求:第一次输入发送get,第二次输入发送post,第三次输入发送get请求,依此类推。

如果按enter键,如何只发送post请求?在firefox中,只有post请求被正确发送。

代码语言:javascript
复制
<form id="Form" method='post' target='DocumentRegisterReportpdf'
    action='/erp/Report/Render?_entity=DocumentRegisterReport'>
... form fields

<select class="ui-widget-content ui-corner-all" id="_Report" name="_Report" size="10">
<option selected="selected" value="AKART001">Report1</option>
<option value="A3001">Report2</option>
<option value="A3003">Report3</option>
</select>

<input id='_submit' type='submit' value='Show PDF' />
</form>
    <script type="text/javascript">
        $(function () {
            $('#_Report').keypress(function (e) { if (enter(e)) { $('#Form')[0].submit(); cancel(e); } });
            $('#_submit').focus();
        });

function enter(e) { return e.keyCode === $.ui.keyCode.ENTER && !e.ctrlKey && !e.altKey; }

function cancel(evt) {
    evt.returnValue = false;
    evt.keyCode = 0;
    evt.cancelBubble = true;
    evt.preventDefault();
    evt.stopPropagation();
}
   </script>
EN

回答 1

Stack Overflow用户

发布于 2011-09-20 18:43:11

代码语言:javascript
复制
$('#_Report').keypress(function (e) { 
    if (enter(e))
        {
            var action = $('#Form').attr('action'),
                separator = action.indexOf('?') == -1 ? '?' : '&',
                url = action + separator + $('#Form').serialize(),
                post_or_get = 'post';
            $.ajax({
                 url : url,
                 method : post_or_get, 
                 success : function(data){
                     // this is the callback :)
                 }
            });
        }
});

或者您可以克隆表单,将其方法从post更改为get,然后提交:

代码语言:javascript
复制
$('#_Report').keypress(function (e) { 
    if (enter(e))
        {
             var post_or_get = 'post';
             $('#Form')
                 .clone()
                 .attr('method', post_or_get)
                 .submit();
        }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7483727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档