我一直在尝试让我的html表单在页面加载时自动启动,而不是当按钮被单击时启动,但是一直无法获得$.ajax
、$.get
和$.post
方法来执行与提交按钮相同的提交。
我的第一个方法是使用一个普通按钮:
<input style="width:80%;margin-left:10%;display:none;" class="span2" name="latest" id="latest" type="text" value="">
<input style="" type="submit" value="Go" name="/latest">
这完全符合我的预期,但是我希望表单在页面加载时自动提交,这样:
<div id="cont2">
<script type="text/javascript">
var a=$('#target').serialize();
$.ajax({
type:'post',
url:'/latest',
data:a,
beforeSend:function(){
alert("click");
},
complete:function(){
alert("complete");
},
success:function(result){
alert(result);
$( '#cont2' ).html();
}
});
</script>
</div>
这并没有像预期的那样执行,而不是从/latest路由返回值,而只是返回相同的页面。
这种方法也不起作用:
<script type="text/javascript">
$.get( "/latest", function( data ) {
$( "#cont2" ).html( data );
alert( "Load was performed." );
});
</script>
因为该路由是一个POST路由,所以它需要一个post提交,但是这也不起作用:
<script type="text/javascript">
$('form[name=target]').submit(function(){
$.post($(this).attr('action'), $(this).serialize(), function(json) {
alert(json);
}, 'json');
return false;
});
</script>
单击按钮后到达的实际有效的路由为:
$f3->route('POST /', function($f3, $params) {
if(isset($_POST['/latest']))
{
echo "accept";
}
}
简而言之,当单击按钮时,所有操作都会按预期进行。但是,当使用jquery提交表单时(因此我可以自动完成),我无法让表单返回相同的响应。任何帮助解决这个问题的人都将不胜感激。
发布于 2016-07-18 14:11:03
$.ajax
和您正在使用的其他方法,以不同于常规表单提交(这会导致页面重新加载)的方式(异步方式)提交表单。如果您希望它的行为像我们单击表单的submit
按钮时一样,您可以在该表单上触发submit
。
<form id="myform" method="post" action="/your_form_handler">
<input style="width:80%;margin-left:10%;display:none;" class="span2" name="latest" id="latest" type="text" value="">
<input style="" type="submit" value="Go" name="/latest">
</form>
$(document).ready(function(){
$("#myform").submit();
});//document ready
发布于 2016-07-18 15:05:44
假设表单是这样的,
<form action="your_url" style="display:none" id="your_form_id">
<input style="width:80%;margin-left:10%;" class="span2" name="latest" id="latest" type="text" value="">
<input style="" type="submit" value="Go" name="/latest">
</from>
如果你需要在当前窗口加载所有元素后显示你的窗体,你也可以使用下面的代码,
$(window).load(function () {
$('#your_form_id').show();
});
除此之外,如果您想根据所单击的按钮在特定的url上提交表单,那么您应该使用
<input type="button" value="Go" name="Go" id="go"/>
而不是,
<input type="submit" value="Go" name="Go" id="go"/>
因为如果您使用<input type ="submit"...../>
,那么您的表单将根据您的表单action
值提交。因此,如果你想提交你的表单到一个特定的url,那么使用按钮点击功能。请看下面的示例:
<form action="to_some_url" id="someForm">
<input type="button" value="Go" name="Go" id="goButton"/>
<input type="submit" value="Go" name="Go" id="go"/>
</form>
<script>
$('#goButton').click(function(){
$("#someForm").action= "another_url";
$("#someForm").submit();
});
</script>
在这里,<input type="submit"..../>
提交表单to_some_url
,<input type="button"...../>
将表单提交给another_url
。如果你没有得到你的答案,请告诉我。
https://stackoverflow.com/questions/38429593
复制相似问题