我正在本地工作,似乎与jQuery和submit()
存在问题。除了下面的内容之外,我在页面上没有其他jQuery。
我有3个菜单,每个菜单都包含sel1
,sel2
和sel3
的ID。如果我按照以下代码添加alert('hereX');
,则会在所有三个引用上触发警告框,但表单不会提交。
$('#sel1').on('change keyup', function () {
alert('here1');
$('#f').append("<input type='hidden' name='act1' value=-1 />");
alert('here2');
$('#f').submit();
alert('here3');
return true;
});
我的表格如下:
<form method="post" name="f" action="#1" id="f">
我的提交按钮设置为:
<input type="submit" name="update" value="Update" onclick="return confirm('You have Javascript enabled')">
是否有人对问题的位置有任何指示。当警报触发时,jQuery似乎正在加载,但似乎是提交没有提交表单。我曾尝试使用Firefox,Chrome和Safari。
Javascript代码如下:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#sel1').on('change keyup', function () {
$('#f').append("<input type='hidden' name='act1' value=-1 />");
$('#f').submit();
return true;
});
$('#sel2').on('change keyup', function () {
$('#f').append("<input type='hidden' name='act1' value=-2 />");
$('#f').submit();
return true;
});
$('#sel3').on('change keyup', function () {
$('#f').append("<input type='hidden' name='act1' value=-3 />");
$('#f').submit();
return true;
});
});
</script>
这是菜单的简化版本,页面使用了相当多的PHP行,并且选择下拉列表相对于actQuery在jquery中发送的值动态加载
<select name="f[type]" style="width: 180px;" id="sel1"
<option value="car">Car</option>
<option value="boat">Boat</option>
</select>
<select name="f[color]" style="width: 180px;" id="sel2"
<option value="red">Red</option>
<option value="blue">Blue</option>
</select>
<select name="f[size]" style="width: 180px;" id="sel3"
<option value="5">5</option
<option value="6">6</option>
<option value="7">7</option>
</select>
答案 0 :(得分:1)
查看action属性:
<form method="post" name="f" action="#1" id="f">
#1
应该是什么?它不是服务器端URL,因此表单实际上不会将任何内容发布到服务器资源。它基本上什么都不做。
除了以下内容之外,我在页面上没有其他jQuery。
然后,此表单没有submit
事件处理程序,除了#1
没有做任何事情的操作。默认情况下,表单并不知道您希望它做什么,需要告知它。使用有效的action
或使用代码内submit
事件处理程序。
这样的事情:
<form method="post" name="f" action="someUrl.php" id="f">
或者这个:
$('#f').submit(function () {
// do something here
});
答案 1 :(得分:0)
嘿,因为表单操作是#1,它不起作用。 您必须更改表单操作或为表单创建另一个提交事件处理程序。
答案 2 :(得分:0)
我发现问题是第二个提交按钮动态设置到页面,其名称与在不同阶段发布的其他按钮之一相同,一旦删除该表单,所以按钮的重复命名是导致冲突。
对不起我之前没有发现过这个问题,整个页面都有相当多的php代码,我必须把自己绑在问题上,而不是多花点钱去处理其他地方的事情。 / p>
表单操作设置为#1时,我发现问题是什么,表单确实有效,将操作设置为#1或设置为其实际文件名,这样就好了差
感谢您抽出时间了解所有答案。