Javascript 为什么IE9在按下enter键时调用get方法而不是post,如何修复?
输入键用于在下面发布表单。 按enter键发送IE9中的get请求: 第一个输入发送get,第二个输入发送post,第三个输入发送get请求等 如果按enter键,如何仅发送post请求? 在firefox中,只有post请求被正确发送Javascript 为什么IE9在按下enter键时调用get方法而不是post,如何修复?,javascript,jquery,internet-explorer,jquery-ui,Javascript,Jquery,Internet Explorer,Jquery Ui,输入键用于在下面发布表单。 按enter键发送IE9中的get请求: 第一个输入发送get,第二个输入发送post,第三个输入发送get请求等 如果按enter键,如何仅发送post请求? 在firefox中,只有post请求被正确发送 <form id="Form" method='post' target='DocumentRegisterReportpdf' action='/erp/Report/Render?_entity=DocumentRegisterReport'&
<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>
... 表单字段
报告1
报告2
报告3
$(函数(){
$('##u Report').keypress(函数(e){if(输入(e)){$('#Form')[0].submit();cancel(e);});
$('#_submit').focus();
});
函数enter(e){return e.keyCode==$.ui.keyCode.enter&&!e.ctrlKey&&!e.altKey;}
功能取消(evt){
evt.returnValue=false;
evt.keyCode=0;
evt.cancelBubble=真;
evt.preventDefault();
evt.stopPropagation();
}
或者您可以克隆表单,将其方法从post
更改为get
,然后提交:
$('#_Report').keypress(function (e) {
if (enter(e))
{
var post_or_get = 'post';
$('#Form')
.clone()
.attr('method', post_or_get)
.submit();
}
});
您的代码只发送get请求。我要求只发送post请求。问题是,由于未知原因,按enter键会按顺序显示get和post请求。如何只发送
post
请求?我在IE9中尝试了更新的方法。ajax调用每次都发送get
请求。clone()方法不发送任何请求,它似乎忽略了submit()调用。如何在输入时发送post请求?问题包含target='DocumentRegisterReportpdf'
。您的ajax调用不会打开新选项卡。另外,ajax调用尝试在url中传递表单数据。对于大量数据,数据会被截断。对于post请求,应该使用缓冲区。
$('#_Report').keypress(function (e) {
if (enter(e))
{
var post_or_get = 'post';
$('#Form')
.clone()
.attr('method', post_or_get)
.submit();
}
});