您好,它通常可以在其他地方使用,但是此特定的AJAX帖子preventDefault()对我不起作用。
我正在动态获取一些值,我将该值设置为表单的隐藏字段,然后触发ajax Post到另一个ROUTE。
以下是我需要任何帮助或帮助的代码部分。
SELECT * FROM MyTable WHERE Column1 LIKE '%'||Column2||'%'
我尝试了不同的方法来防止表单提交并导航到另一个页面。
<!--Init_Form_ST-->
<div style="display:none;">
<form id="frm_init" name="frm_init" action="{{ route('init_message') }}" method="POST" >
{{ csrf_field() }}
{{ method_field('POST') }}
<input type="hidden" name="init_messageType" id="init_messageType" value="chatMessage" >
<input type="hidden" name="init_idempotencyid" id="init_idempotencyid" value="" >
<input type="hidden" name="init_receveruserid" id="init_receveruserid" value="" >
<input type="hidden" name="init_lang" id="init_lang" value="" >
<?php /*?><input type="submit" name="init_submit" id="init_submit" value="init_sub" ><?php */?>
<button type="submit" name="init_submit" id="init_submit" ></button>
</form>
</div>
<!--Init_Form_EN-->
指针转到第一警报,并等待按钮单击。之后,指针显示第二警报,但无需等待页面即可导航到路由路径。
我什至通过删除所有Ajax代码进行了测试。但是第三警报永远不会触发
我已经测试了以下选项
alert("1st Alert - Before Click Trigger");
$("#init_submit").trigger('click');
alert("2nd Alert - After Click Trigger");
$("#frm_init").on('submit', function(event) {
event.preventDefault();
alert("3rd Alert - Into submit"); // <== It never comes here
var init_formdata = new FormData(this);
var init_msg_route = "{{ route('init_message') }}";
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: init_msg_route,
dataType: 'json',
cache: false,
async: false,
type: "POST",
data: init_formdata,
contentType: false,
processData: false,
success: function(result) {
alert("Success");
},
error: function(jqxhr, status, exception) {
alert('Exception:', exception);
}
});
});