$('形式')。提交();似乎没有在函数

时间:2016-04-07 12:08:11

标签: jquery

我正在本地工作,似乎与jQuery和submit()存在问题。除了下面的内容之外,我在页面上没有其他jQuery。

我有3个菜单,每个菜单都包含sel1sel2sel3的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>

3 个答案:

答案 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或设置为其实际文件名,这样就好了差

感谢您抽出时间了解所有答案。