我想钝化表单操作,因为我使用js提交表单。但如果有表单操作js不起作用,页面重定向动作URL。我删除了表单标签并使用#combination id放置div标签,但它既不起作用也不起作用 JS:
$("#combination").submit(function(){
var url = "www.myurl.com/?view=listen&";
var i = 0;
$("input:checked").each(function(){
url += "tag[" + i + "]" + $(this).val() + "&";
i++;
});
alert(url);
location.href = url;
});
HTML:
<form id="combination" action="" method="get" name="combination" target="_self">
<?php foreach($top_tags as $top_tag):?>
<input type="checkbox" name="tag[]" value="<?php echo $top_tag['tag_name'];?>" /><?php echo $top_tag['tag_name'];?><br />
<?php endforeach;?>
<input name="" type="submit">
</form>
答案 0 :(得分:2)
你必须使用“preventDefault”阻止表单的默认行为,而不是启动你的ajax-call或者什么;)。
$("#combination").submit(function(event){
event.preventDefault();
var url = "www.myurl.com/?view=listen&";
var i = 0;
$("input:checked").each(function(){
url += "tag[" + i + "]" + $(this).val() + "&";
i++;
});
alert(url);
location.href = url;
});
答案 1 :(得分:0)
你真的无法以这种方式调用处理程序的问题:
handler(eventObject)每次触发事件时执行的函数。
基本上发生了什么,而不是提交表单,你做了重定向。
想想链条:
如果你真的想要这样做,你可以用两种方式来做:
因为有人说使用ajax
http://api.jquery.com/jQuery.ajax/提交到处理程序并以任何方式禁用默认操作
$("#combination").submit(function(event){
event.preventDefault();
// code here
});
OR
$("#combination").submit(function(event){
// code here
return false;
});